次のループをベクトル化したいと思います。
for I=1:N
x = f(x);
end
f はカスタム関数、つまり無名関数です。これを可能にする arrayfun のようなコマンドはありますか?
編集:ベクトル化はここでは間違った言葉である可能性があり、むしろ最適化を使用する必要があります。
次のループをベクトル化したいと思います。
for I=1:N
x = f(x);
end
f はカスタム関数、つまり無名関数です。これを可能にする arrayfun のようなコマンドはありますか?
編集:ベクトル化はここでは間違った言葉である可能性があり、むしろ最適化を使用する必要があります。
私はコードをチェックしませんが、おそらく:
x = arrayfun(@(y) f(x), 1:N);
渡したベクトルの各要素をarrayfun
パラメーターとして取得できます。上記の例y
では、 vector の各要素を参照します。これは、例として投稿し1:N
たループのインデックスも表します。for
ループでfor
はインデックスを使用しないため、で同じことを行い、arrayfun
内部で必要なことを行うベクトルを反復処理できますf(x)
。最後に、出力を に割り当てることができますx
。おそらく、繰り返しのそれぞれの結果で長さarrayfun
の出力を取得する方法で。ループを使用すると、反復ごとに の値を上書きします。x
N
f(x)
for
x
私の英語で申し訳ありませんが、助けていただければ幸いです。