在MATLAB中有一个关于parfor的简单问题.我想在我的程序中设置一个标志,以便在parfor和regular for循环之间进行更改.基本上,我需要这个功能,以便我的代码的某些部分可以在"调试"模式下更新图形,然后当标志关闭时,使用parfor没有图形更新的速度.
所以,我正在寻找具有此功能的简单内容:
if (flag)
for i = 1:n
else
parfor i = 1:n
end
% Do loop tasks.
end
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!谢谢!
不,这是不可能的.但是,如果你可以将循环体包装在一个单独的函数中,你可以使用一个parfor或一个for循环来调用正文,即
if (flag)
parfor i=1:n
out(i) = loopBody(i)
end
else
for i=1:n
out(i) = loopBody(i)
end
end
Run Code Online (Sandbox Code Playgroud)
或者,让你要么你可以编辑代码,parfor或for在你的循环,这是我最后往往做的前面.
还有一个选项 - 使用PARFOR的可选参数
if flag
arg = Inf;
else
arg = 0;
end
parfor (idx = 1:n, arg)
...
end
Run Code Online (Sandbox Code Playgroud)