如何在Matlab中迭代列向量?

时间:2010-08-11 18:15:56

标签: matlab iteration

  

可能重复:
  How do I iterate through each element in an n-dimensional matrix in MATLAB?

我有一个列向量list,我想像这样迭代:

for elm in list
   //do something with elm

如何?

4 个答案:

答案 0 :(得分:89)

在Matlab中,您可以直接迭代列表中的元素。如果您不需要知道当前正在处理哪个元素,这将非常有用。

因此你可以写

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

请注意,Matlab会遍历list的列,因此如果list是nx1向量,则可能需要对其进行转置。

答案 1 :(得分:29)

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

答案 2 :(得分:6)

在matlab中有很多函数,你根本不需要迭代。

例如,

乘以它在列表中的位置:

m = [1:numel(list)]';
elm = list.*m;
matlab中的矢量化算法通常要快得多。

答案 3 :(得分:2)

如果您只想将函数应用于每个元素并将结果放在输出数组中,则可以使用arrayfun

正如其他人所指出的,对于大多数操作来说,最好避免使用MATLAB和vectorise your code instead中的循环。