MATLABでは、次のfor
ループがあります。forループは反復しません
for i = [1:100]'
%'// Do something, such as disp(i)
end
は実際には反復処理で実際には実装されていませんが、i
は行列[1 2 3 ... 100]になり、 "loop" i
。これを確認するには、i
の値またはその他のトラッキング情報を出力します。ループを通過するのは1回だけです。
MATLABに本物のループを強制することは可能ですか?私が尋ねる理由は、上記のアプローチは多くのケースでうまくいくが、実行する必要があるネストループがあるときははるかに痛いということです。
:
次のコードは、実際にループを繰り返していると思われる場合は期待したことができません:
for i = outlier
data(i) = median(data(i-100:i+100))
end
これは、 data(i)をi-100からi + 100までのデータの中央値と比較しますが、一致しません。実際、中央値は、あなたが気にしているすべての範囲の集合体で計算された単一の値を返し、すべてのデータ(i)点がその単一の値に置き換えられます。
あなたが見ているものを再生し、出力を投稿することができます。私はこの振る舞いを見たことがなく、私はMatlabのforループに多くの注意を払ってきました。 – Iterator
中央値(データ(i-100:i + 100))を意味しないのですか? ( ':'付き) –
@Clement J.はいそうです。今修正されました。 –