0

次のループをベクトル化したいと思います。

for I=1:N
  x = f(x);
end

f はカスタム関数、つまり無名関数です。これを可能にする arrayfun のようなコマンドはありますか?

編集:ベクトル化はここでは間違った言葉である可能性があり、むしろ最適化を使用する必要があります。

4

1 に答える 1

0

私はコードをチェックしませんが、おそらく:

x = arrayfun(@(y) f(x), 1:N);

渡したベクトルの各要素をarrayfunパラメーターとして取得できます。上記の例yでは、 vector の各要素を参照します。これは、例として投稿し1:Nたループのインデックスも表します。forループでforはインデックスを使用しないため、で同じことを行い、arrayfun内部で必要なことを行うベクトルを反復処理できますf(x)。最後に、出力を に割り当てることができますx。おそらく、繰り返しのそれぞれの結果で長さarrayfunの出力を取得する方法で。ループを使用すると、反復ごとに の値を上書きします。xNf(x)forx

私の英語で申し訳ありませんが、助けていただければ幸いです。

于 2013-02-28T10:24:51.290 に答える