在Matlab中增长向量的Hashmap

Mat*_*att 5 java matlab hashtable hashmap

我需要在Matlab中使用类似hashmap的功能,其中hashmap将向量映射到其他向量,并且事先不知道向量的数量(范围在数十万).

我尝试了Matlab的内置Containers.Map,但是它不接受向量作为键.然后我尝试了java.util.HashMap:

>> map = java.util.HashMap;
>> map.put(1:3,zeros(2,1));
>> map.get(1:3)

 ans =

 []
Run Code Online (Sandbox Code Playgroud)

因此,由于某些原因似乎不起作用,即使Java的HashMap应该能够将数组映射到数组.

另一种选择是保留两个单独的矩阵,一个用于键,一个用于值,并逐步增长.但是我不想真的想这样做,因为Matlab中逐渐增长的东西是痛苦的(即使是块大小增量等,例如这里).

问题:1.为什么Java的HashMap不能在这里工作?2.还有其他方法吗?

谢谢.

lea*_*vst 4

这是一个可以做你想要的事情的拼凑。。。

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)
Run Code Online (Sandbox Code Playgroud)

..无论如何,这都是一个起点。