MATLAB:在container.Map对象中扩展值列表

Joe*_*McG 6 matlab containers map

我一直在阅读使用Matlab的container.Map的文档来构建类似于Python字典的东西,但我遇到了一些问题并且希望有人可以解释一下.

有没有办法扩展映射到某个键的值列表的内容?例如,对于地图"map",键"1234"我的值为"1.0".

map(1234) = 1.0
Run Code Online (Sandbox Code Playgroud)

我想将值列表扩展到[1.0 2.0],我尝试这样做的方式是

map = containers.Map(1234,1.0)
map(1234) = [map(1234) 2.0]
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误,说"使用containers.Map/subsasgn时出错.指定的值类型与此容器的预期类型不匹配."

我可以不将数组作为值关联到地图键吗?

非常感谢!

And*_*nke 8

如果ValueType为"any",则支持非标量数组.看起来问题不是您用于扩展的技术,而是键或值类型.

当您使用带有键和值的构造函数时,它会从传入的值中推断键和值类型.如果值是标量double,则将类型推断为"double".这不支持非标量数组.

>> map = containers.Map(1234, 1.0);
>> disp(map.ValueType)
double
Run Code Online (Sandbox Code Playgroud)

默认的containers.Map构造函数将具有KeyType'char'和ValueType'any'.这将具有您想要的扩展行为,但您必须使用char键.使用构造函数表单将键和值类型显式设置为"double"和"any",它将按您希望的方式工作.

map = containers.Map('KeyType','double', 'ValueType','any');
map(1234) = 1.0;
map(1234) = [map(1234) 2.0];
Run Code Online (Sandbox Code Playgroud)