私は当初、ループをネストしたfor
ループを使用する必要がある問題を扱っています。私は多数のfor
ループを1つに結合する方法があるかどうか疑問に思っていました。複数のforループを1つにまとめる
これを追加するには、答えがhereであることが判明しましたが、可能なすべての組み合わせを最初に生成する必要があります。これはメモリ要件が悪い可能性があります。私は、私が使用する必要がありますどのように多くの変数を事前に知っていれば、これを作るための方法がある
for x1 = 1:10
for x2 = 2:15
for x3 = 3:5
for x4 = 7:9
%and so on
cost = J(x1, x2, x3, x4) %or more
end
end
end
end
:私のfor
ループは、次のようなコスト関数が評価されると、互いに独立した多くの変数、で構成され簡単にブロックできますか?
であなたの計算を開始することができます
元のコード*その後、遅くなります。ネストされたループを単一のものにする一般的な方法があった場合、最初からネストされたループはありません。また、不必要な書式作成を避けるようにしてください。 –
私の前のコメントに追加する。ほぼすべてのコード最適化は、メモリと計算時間の間の弱いバランスに依存します。一般的には1つを選択する必要があり、もう1つが悪化する可能性が高いことに注意してください。 –
もう1つの方法はベクトルを受け入れてn-dim(nは可変の与えられた数)テンソルを返すように 'J()'を修正することですが、それもメモリと時間のバランスに戻ります。 – mpaskov