次のループをベクトル化したいと思います。
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の出力を取得する方法で。ループを使用すると、反復ごとに の値を上書きします。xNf(x)forx
私の英語で申し訳ありませんが、助けていただければ幸いです。