0

for ループを 1000 のバッチで実行する必要があります。しかし、最初の実行時に 'cc' が 100 に達しない場合は、cc が 100 に達するまで 1000 のバッチをさらに実行する必要があります。

これは while ループを使用して実行できることはわかっていますが、並列ツールボックスparfor(おそらく GPU も) を使用する必要があり、知る限り、while ループはサポートされていません。

基本的に、if ループ内の for ループ インデックスを変更 (リセット) する必要があります。ただし、MATLAB の for ループは、ループ内でインデックス (この場合は 'i') を変更できないように設計されているようです。これを回避する方法はありますか?while ループを使用せずにこれを行うには、よりスマートな方法が必要です。助言がありますか?

for i=1:1000

    if (abs(i) <= gamma)
        % etc..
        cc = cc + 1;
    end

    if cc < 100
        i = 1;
    end

end
4

1 に答える 1