Can one dynamically add new keys to a Maps data structure in Matlab?

I recently discovered the maps data structure but it seems I can't dynamically assign new keys to it. I am going through some files and don't know the keys beforehand (unless I loops through everything first to get the keys and then again to get the data). Is it possible to not have to loop through things twice and just instead add new keys as I discover them?
[note this is easy to do in python with a dictionary with `dictionary[new_key] = data` ]

1 Commento

Adding a new key-value pair is same as python e.g map_variable(new_key)= data.

Accedi per commentare.

Risposte (1)

That should work if you do it as is shown by the last example on the containers.Map documentation page. Can you show the full error message (everything in red) you receive when you try? That may show us why it's not working or suggest a further avenue for investigation.

7 Commenti

how do you specify that the second type is a vector/matrix type?
I want to map doubles to just tensors.
error:
Mtests =
Map with properties:
Count: 0
KeyType: double
ValueType: double
Error using containers.Map/subsasgn
Specified value type does not match the type expected for this container.
Error in collect_flatness_results (line 19)
Mtests(noise) = all_test_accs;
ok 'any' is the solution:
Mtests = containers.Map('KeyType','double','ValueType','any')
What does class return when called on the variables noise and all_test_accs on line 19 of collect_flatness_results?
Steven, I think I solved it, if you put 'any' Maps can hold any type. The variables there are double and the other is an array of doubles. Thanks! :D

Accedi per commentare.

Richiesto:

il 30 Mar 2018

Community Treasure Hunt

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

Start Hunting!

Translated by