10

MATLAB の parfor について簡単な質問があります。プログラムにフラグを設定して、parfor ループと通常の for ループを切り替えたいと考えています。基本的に、この機能が必要なのは、コードの一部が「デバッグ」モードでグラフィックスを更新できるようにするためです。その後、フラグがオフになっている場合は、速度のためにグラフィックスの更新なしで parfor を使用します。

だから、私はこの機能を持つシンプルなものを探しています:

if (flag)
  for i = 1:n
else
  parfor i = 1:n
end

  % Do loop tasks.

  end

どんな助けでも大歓迎です!ありがとう!

4

3 に答える 3

6

いいえ、これは不可能です。ただし、ループ本体を別の関数でラップできる場合は、aparforまたはforループのいずれかで本体を呼び出すことができます。

if (flag)
   parfor i=1:n
      out(i) = loopBody(i)
   end
else
   for i=1:n
      out(i) = loopBody(i)
   end
end

または、コードを編集して、ループのいずれかparforまたは前に配置することもできます。これは、私がよく行うことです。for

于 2012-04-13T01:28:39.607 に答える