PDA

查看完整版本 : Matlab中的快速关联数组或地图


poster
2019-12-14, 20:13
我需要在Matlab中的两个大型整数数组之间建立快速 的一对一映射 。映射应将预定义数组中的元素作为输入,例如:

in_range = [-200 2 56 45 ... ]; 并将其通过先前数组中的索引映射到另一个预定义数组中的相应元素,例如:

out_range = [-10000 0 97 600 ... ]; 例如,在上述情况下, my_map(-200)应该输出-10000 ,而my_map(45)应该输出600 。

我需要一个解决方案


可以相对有效地映射非常大的数组(〜100K元素)。
使用in_range和out_range的边界(即它们的min和max )很好地缩放
到目前为止,我已经使用Matlab的Java外部接口与Java的HashMaps解决了这个问题,但是我想知道是否有Matlab的替代方案。

谢谢!



回答:

Matlab的最新版本具有哈希值 (http://www.mathworks.com/help/techdoc/matlab_prog/brqqo5e-1.html) 。我正在使用2007b,但它们不可用,因此每当需要哈希时都使用结构 (http://www.mathworks.com/help/techdoc/ref/struct.html) 。只需使用genvarname (http://www.mathworks.com/help/techdoc/ref/genvarname.html)将整数转换为有效的字段名称即可 (http://www.mathworks.com/help/techdoc/ref/genvarname.html) 。



更多&回答... (https://stackoverflow.com/questions/4754181)