Как использовать FOR l oop в субиндексе struct? - MATLAB - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть структура, как показано на рисунке, и мне нужно обратиться к одному из столбцов в FOR l oop, как показано. Но я продолжаю получать эту ошибку:

Функция 'subsindex' не определена для значений класса 'struct'.

Ошибка в analisa_arx_teste (строка 351)

В моем случае что я хочу: строка 1 представляет i = 1, строка 2 i = 2; Итак, для функций, когда я запрашиваю pref_estemod (i) .features, это получить значения из полевых объектов, связанных с каждой моделью.

Я только начинаю программировать с помощью matlab, поэтому вся ваша помощь будет принята .

Спасибо!

for i=pref_estemod(1:npreferred)

[m,n]=size(Training);

features=(pref_estemod(1,i).features);

end

enter image description here

1 Ответ

0 голосов
/ 03 февраля 2020

Ошибка заключается в i=pref_estemod(1:npreferred).

Если вы собираетесь использовать i для индексации, синтаксис будет for i=1:npreferred.

1:npreferred само расширяется до горизонтального массива [1,2,...,npreferred]. = с ведущим for - это специальная комбинация синтаксиса. Это значит сделать следующий код с i=1, i=2, ..., i=npreferred. Теперь я уверен, что вы уже знаете идею for l oop. Причина, по которой я пишу все это, состоит в том, чтобы дать вам следующее предупреждение / совет. НЕ ожидайте, что один и тот же синтаксис будет работать с массивами, отличными от нумерации c. Потому что это работает в некоторых случаях, а не в других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...