可能重複:
How do I iterate through each element in an n-dimensional matrix in MATLAB?如何在Matlab中迭代列向量?
我有一列向量list
我想重複這樣的:
for elm in list
//do something with elm
如何?
可能重複:
How do I iterate through each element in an n-dimensional matrix in MATLAB?如何在Matlab中迭代列向量?
我有一列向量list
我想重複這樣的:
for elm in list
//do something with elm
如何?
在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.
在matlab中有很多函數,你根本不需要迭代。
例如,乘以它在列表中的位置:
m = [1:numel(list)]';
elm = list.*m;
在MATLAB矢量算法一般要快得多。
如果您只是想將函數應用於每個元素並將結果放入輸出數組中,則可以使用arrayfun
。如其他人指出的,對於大多數操作,最好避免MATLAB中的循環和vectorise your code instead。
我也會告訴你,使用google搜索術語「迭代矩陣matlab」返回的數字2結果是stackoverflow。 – James 2010-08-11 18:22:11