containers.Map keys value not match

8 Ansichten (letzte 30 Tage)
Safwana Razak
Safwana Razak am 8 Nov. 2019
Kommentiert: Walter Roberson am 11 Nov. 2019
Hi,
i try using containers.Map function to automate my table value into certain keys but end end up with this error:
"Specified key type does not match the type expected for this container."
i refer back my code, the data for key data is correct data type. anyone can assist me how to solve this problem?
here i attach my code:
labelMap = containers.Map('KeyType','double','ValueType','char');
keySet = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
valueSet = {'air_conditioner','car_horn','children_playing','dog_bark','drilling','engine_idling','gun_shot','jackhammer','siren','street_music'};
labelMap = containers.Map(keySet,valueSet);
current_class = reference_table(strcmp(reference_table.fsID, PCG.filename), :).classID;
feature_table.class = {labelMap(current_class)};
thanks.
  2 Kommentare
Daniel M
Daniel M am 9 Nov. 2019
What is the output of current_class?
Safwana Razak
Safwana Razak am 11 Nov. 2019
my output should be keyset value, 0 or 1 or 2 and so on. i try to do classification actually.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 9 Nov. 2019
Bearbeitet: Walter Roberson am 11 Nov. 2019
We can suspect strongly from your use of {} around the call to labelMap that you are expecting current_class to be a vector, and expecting the call to labelMap to return a comma separated list, that you would then capture all of in the {} .
However, you defined the key as scalar, not as vector, and passing a vector key in where a scalar key is expected is going to get you exactly that error message.
You should instead use
feature_table.class = arrayfun(@(C) labelMap(C), current_class, 'uniform', 0);
  2 Kommentare
Safwana Razak
Safwana Razak am 11 Nov. 2019
my expecting output is keyset value, 0 or 1 or 2 and so on.
Walter Roberson
Walter Roberson am 11 Nov. 2019
Your current_class is returning a non-scalar under at least one condition. There might not be a match, or there might be multiple matches.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by