containers.Map keys value not match
Afficher commentaires plus anciens
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 commentaires
Daniel M
le 9 Nov 2019
What is the output of current_class?
Safwana Razak
le 11 Nov 2019
Réponses (1)
Walter Roberson
le 9 Nov 2019
Modifié(e) : Walter Roberson
le 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 commentaires
Safwana Razak
le 11 Nov 2019
Walter Roberson
le 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.
Catégories
En savoir plus sur Data Structures dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!