Почему бы просто не использовать java.util.HashMap
? Matlab отлично работает с Java. (Хотя я предполагаю, что это работает только с данными, которые можно упорядочить в Java, поэтому, хотя матрицы и массивы ячеек матриц в порядке, структуры отсутствуют)
>> x = java.util.HashMap;
>> x.put(3, [1 2 3]);
>> x.put('Rosebud',[4 5 6; 7 8 9]);
>> x.put([2 4 6 8],'Michaelangelo');
>> x.get(3)
ans =
1
2
3
>> x.get('Rosebud')
ans =
4 5 6
7 8 9
>> x.get([2 4 6 8])
ans =
[]
Ага: следите за этим последним битом - семантика равенства в Java для чисел и строк проста, но для массивов все становится сложнее, а использование Java в MATLAB немного похоже на обработку лабораторных образцов в перчаточном ящике.
Если вы можете справиться с ограничениями java.util.HashMap
(семантика равенства ключей, ограничения типов для тех, которые могут быть распределены между Java и MATLAB), используйте его - в противном случае вам, вероятно, придется написать свой собственный.