Как перебрать вектор-столбец в Matlab? [duplicate]

52
задан Community 23 May 2017 в 02:34
поделиться

4 ответа

В Matlab вы можете напрямую перебирать элементы в списке. Это может быть полезно, если вам не нужно знать, над каким элементом вы сейчас работаете.

Таким образом, вы можете написать

for elm = list
%# do something with the element
end

. Обратите внимание, что Matlab выполняет итерацию по столбцам list , поэтому, если list является вектором nx1, вы можете захотеть его транспонировать.

95
ответ дан 7 November 2019 в 09:08
поделиться
for i=1:length(list)
  elm = list(i);
  //do something with elm.
30
ответ дан 7 November 2019 в 09:08
поделиться

Если вы просто хотите применить функцию к каждому элементу и поместить результаты в выходной массив, вы можете использовать arrayfun .

Как отмечали другие, для большинства операций лучше избегать циклов в MATLAB и вместо этого векторизовать ваш код .

2
ответ дан 7 November 2019 в 09:08
поделиться

для многих функций в matlab итерации вообще не нужны.

например, для умножения на позицию в списке:

m = [1:numel(list)]';
elm = list.*m;

векторизованные алгоритмы в matlab в целом намного быстрее.

6
ответ дан 7 November 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: