HY!
我有一个Object数组:bs_ek(包含字段,方法的对象)。我想创建一个hashmap。
for i= 1: length(bs_ek)
k(i)=bs_ek(i).id;
end
rainfallMap = containers.Map(k, bs_ek)
但我收到此错误消息:
使用containers.Map时出错 指定的值类型与类型不匹配 期待这个容器。
我使用bs_ek元素创建了一个新的CELL数组:
value2 = {bs_ek(1), bs_ek(2), bs_ek(3),bs_ek(4), bs_ek(5), bs_ek(6), bs_ek(7), bs_ek(8), bs_ek(9), bs_ek(10), bs_ek(11) };
它的工作原理:
rainfallMap = containers.Map(k, value2)
这制作了一张地图。但是bs_ek的长度没有固定(每次都不是11)而且我想在每次开始时改变这个数字。
提前致谢。
答案 0 :(得分:1)
这很容易修复(假设id是有符号整数):
rainfallMap = containers.Map('KeyType', 'int32', 'ValueType', 'any');
for i = 1:length(bs_ek)
rainfallMap(bs_ek(i).id) = bs_ek(i);
end
但是有一个问题我没有答案:上面的方法只会复制 bs_ek(i)到哈希映射,所以如果你以后更改bs_ek,那么这些更改不会反映在哈希映射中。