我的目标是初始化一个Map对象,其中包含键的双精度值和值的结构。
我有一个与此类似的结构数组:
s(1) = [1,2,3];
s(1) = 'str';
s(2) = [4,5,6];
s(2) = 'str2';
s(3) = [7,8,9];
s(3) = 'str3';
然后我想创建一个地图对象,如:
awesome = container.Map(1:3, s);
但我收到以下错误:
Error using containers.Map
Specified value type does not match the type expected for
this container.
但是如果我这样做的话会有效:
awesome = container.Map(1:3, {s1, s2, s3});
为什么会发生这种情况,如何在将结构保持为值类型的同时使其工作?
答案 0 :(得分:0)
假设您的结构设置代码类似于:
s(1).Numbers = [1,2,3];
s(1).String = 'str';
s(2).Numbers = [4,5,6];
s(2).String = 'str2';
s(3).Numbers = [7,8,9];
s(3).String = 'str3';
你可以用结构数组制作一个地图:
theMap = containers.Map( 1:3, arrayfun(@(x) ({x}), s))