Быстрые ассоциативные массивы или карты в Matlab

Мне нужно построить быстрое взаимно-однозначное отображение между двумя большими массивами целых чисел в Matlab. Отображение должно принимать в качестве входных данных элемент из предварительно определенного массива, например:

in_range    = [-200   2  56   45 ... ];

, и сопоставлять его по его индексу в предыдущем массиве с соответствующим элементом из другого предварительно определенного массива, например:

out_range   = [-10000 0  97   600 ... ];

Например в приведенном выше случае my_map (-200) должен выводить -10000 , а my_map (45) должен выводить 600 .

Мне нужно решение, которое

  1. может относительно эффективно отображать очень большие массивы (~ 100K элементов).
  2. Хорошо масштабируется с пределами in_range и out_range (т. Е. Их min и max значения)

Пока что я решил эту проблему с помощью Matlab ' s внешний интерфейс к Java с Java's HashMaps , но мне было интересно, есть ли альтернатива для Matlab.

Спасибо!

5
задан Amelio Vazquez-Reina 21 January 2011 в 01:11
поделиться