Быстрый доступ к массиву структур 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 вычисляет список значений идентификаторов, разделенных запятыми, которые объединяются в массив, который затем можно использовать для поиска.

Другие вопросы по тегам