可能性のある複製:
MATLABのn次元行列の各要素を反復処理する方法は?
次のように繰り返したい列ベクトル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と 代わりにコードをベクトル化する のループを避けるのが最善です。