Matlab中的快速关联数组或映射

Ame*_*ina 5 performance matlab

我需要在Matlab中的两个大整数数组之间建立一个快速 的一对一映射.映射应该将来自预定义数组的元素作为输入,例如:

in_range    = [-200   2  56   45 ... ];
Run Code Online (Sandbox Code Playgroud)

并通过前一个数组中的索引将其映射到另一个预定义数组中的相应元素,例如:

out_range   = [-10000 0  97   600 ... ];
Run Code Online (Sandbox Code Playgroud)

例如,在上面的情况下,my_map(-200)应该输出-10000,并且my_map(45)应该输出600.

我需要一个解决方案

  1. 可以相对有效地映射非常大的数组(~100K元素).
  2. 随着边界很好地扩展in_rangeout_range(即它们的minmax值)

到目前为止,我已经使用Matlab与Java的HashMaps的 Java外部接口解决了这个问题,但我想知道是否有Matlab本地替代方案.

谢谢!

Ric*_*h C 4

最新版本的 Matlab 有哈希值。我正在使用 2007b,但它们不可用,因此每当需要哈希时我都会使用结构。只需使用genvarname将整数转换为有效的字段名称。