Подтвердить что ты не робот

Как перебирать вектор столбца в Matlab?

Возможный дубликат:
Как выполнить итерацию каждого элемента в n-мерной матрице в MATLAB?

У меня есть вектор-столбец list, который я бы хотел повторить так:

for elm in list
   //do something with elm

Как?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

for i=1:length(list)
  elm = list(i);
  //do something with elm.

Ответ 3

со многими функциями в Matlab, вам не нужно итерации вообще.

например, чтобы умножить на это положение в списке:

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

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

Ответ 4

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

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