1

嗨!

我有一个对象数组:bs_ek(带有字段、方法的对象)。我想创建一个哈希图。

    for i= 1: length(bs_ek)
    k(i)=bs_ek(i).id;
    end


    rainfallMap = containers.Map(k, bs_ek)

但我收到此错误消息:

使用容器时出错。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),我想每次开始都改变这个数字。

提前致谢。

4

1 回答 1

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,更改将不会反映在哈希映射中。

于 2013-10-10T19:22:21.080 回答