我需要在 Matlab 中使用类似 hashmap 的功能,其中 hashmap 将 vector 映射到其他 vector ,并且事先不知道 vector 的数量(数十万)。
我尝试了 Matlab 的内置 Containers.Map ,但这不接受 vector 作为键。然后我尝试了 java.util.HashMap:
>> map = java.util.HashMap;
>> map.put(1:3,zeros(2,1));
>> map.get(1:3)
ans =
[]
因此出于某种原因,这似乎不起作用,即使 Java 的 HashMap 应该能够将数组映射到数组。
另一种选择是保留两个单独的矩阵,一个用于键,一个用于值,并逐步增长它们。但我真的不想这样做,因为在 Matlab 中增量增长的痛苦(即使是 block 大小增量等,例如 here)。
问题: 1、为什么Java的HashMap在这里不行? 2. 还有其他方法吗?
谢谢。
最佳答案
这是一个可以做你想做的事情的kludge。 . .
map = java.util.HashMap;
key = java.util.Vector;
matKey = 1:3;
for nn=1:numel(matKey)
key.add(matKey(nn));
end
map.put(key,zeros(2,1));
map.get(key)
..无论如何这是一个起点。
关于java - 在 Matlab 中生成 vector 的 Hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805476/