首页 文章

如何在Matlab中迭代列向量? [重复]

提问于
浏览
47

可能重复:如何在MATLAB中迭代n维矩阵中的每个元素?

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

for elm in list
   //do something with elm

怎么样?

4 回答

  • 87

    在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.
    
  • 29

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

    例如,要乘以它在列表中的位置:

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

    matlab中的矢量化算法通常要快得多 .

  • 6

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

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

相关问题