【发布时间】:2015-06-26 06:26:52
【问题描述】:
在一个简单的进度指示器中,我更新了循环前进了多少百分比:
progress=0;
N=10;
for k=1:N
% ....
progress=progress+1;
disp(sprintf('progress %d%%',progress/N*100));
end
还有输出:
进步 10%
进步 20%
进步 30%
进步 40%
进度 50%
进度 60%
进度 70%
进度 80%
进度 90%
进度 100%
但是,当我尝试将 for 循环更改为 parfor(并行循环)时,我遇到了错误
progress=0;
N=10;
parfor k=1:N
% ....
progress=progress+1;
disp(sprintf('progress %d%%',progress/N*100));
end
使用测试出错(第 4 行)
错误:变量进度可能是为了减少 变量,但实际上是一个未初始化的临时变量。
请参阅 MATLAB 中的并行 for 循环,“临时变量旨在 减少变量”。
如何解决?
【问题讨论】:
标签: matlab loops parallel-processing parfor