В Matlab вы можете напрямую перебирать элементы в списке. Это может быть полезно, если вам не нужно знать, над каким элементом вы сейчас работаете.
Таким образом, вы можете написать
for elm = list
%# do something with the element
end
. Обратите внимание, что Matlab выполняет итерацию по столбцам list
, поэтому, если list
является вектором nx1, вы можете захотеть его транспонировать.
for i=1:length(list)
elm = list(i);
//do something with elm.
Если вы просто хотите применить функцию к каждому элементу и поместить результаты в выходной массив, вы можете использовать arrayfun
.
Как отмечали другие, для большинства операций лучше избегать циклов в MATLAB и вместо этого векторизовать ваш код .
для многих функций в matlab итерации вообще не нужны.
например, для умножения на позицию в списке:
m = [1:numel(list)]';
elm = list.*m;
векторизованные алгоритмы в matlab в целом намного быстрее.