Быстрый доступ к массиву структур MATLAB на основе его идентификатора
У меня есть структура Matlab:
a(1).x=54.23; a(1).y=2.3; a(1).col=32.221; a(1).id=1;
a(2).x=5.23; a(2).y=3.3; a(2).col=2.221; a(2).id=2;
... и так далее. Теперь я хочу получить доступ к структуре в a
имея идентификатор 73. Я могу думать о выполнении цикла for, но дело в том, что я должен получить доступ к элементам массива a
несколько раз, как это на основе идентификатора. Wat - самая быстрая структура данных, доступная для этой цели? Подобный Python словарь может работать, но я не уверен, что должен его реализовать. Указание некоторых примеров кода было бы очень полезно.
1 ответ
Решение
Попробуй это:
id=[a.id];
a(id==73)
Он не так эффективен, как словарь, но если он достаточно быстр для ваших целей, не стоит заглядывать дальше.
a.id
part вычисляет список значений идентификаторов, разделенных запятыми, которые объединяются в массив, который затем можно использовать для поиска.