oh, i think i know why ... it probably thinks i'm trying to access "pi"'th element in that array where what I'm actually trying to do is create a key a(pi) that will return 3:14 array ... Does anyone know how to fix this?
How to make a dictionary of arrays?
30 views (last 30 days)
Show older comments
I can't seem to figure out how containers.Map works... It's doing ok with characters and numbers, but flips out when I try to feed it arrays. How do I make something like this?
function test
global a
a = containers.Map();
a(pi) = 3:14;
a(5) = 4:2:10;
end
Accepted Answer
Geoff Hayes
on 23 May 2015
Solarmew - the default KeySet type for a container is char (see containers.Map for details) and so when you try the above, you probably see the following error message
Error using containers.Map/subsasgn
Specified key type does not match the type expected for this container.
The above error makes sense since your key of pi or 5 are of type double (or single). Since you want your keys to be doubles then just define the KeySet and _ValueType* properties as
a = containers.Map('KeyType','double','ValueType','any');
which means that
a =
Map with properties:
Count: 0
KeyType: double
ValueType: any
And so you can now use pi or 5 as a key
a(pi) = 3:14;
a(5) = 4:2:10;
Try the above and see what happens!
0 Comments
More Answers (0)
See Also
Categories
Find more on Dictionaries in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!