【发布时间】:2018-08-11 06:28:54
【问题描述】:
在我的for 循环中,我设置了一个矩阵变量ga 来保存每个循环的结果。
但是当我把for循环改成parfor循环(加速)时,出现如下警告:
当我运行代码时,我得到另一个错误:
代码是:
R=100;
alpha_set = [1,2,3,4,5]; % This is an index set
ga = zeros(2,5); % to save results of addition
parfor h=1:R
[A1,A2] = random_sample(A,0.6);
...
for ai=1:5
alpha = alpha_set(ai);
ga(1,ai) = ga(1,ai) + T_lower(A2,alpha)/R;
ga(2,ai) = ga(2,ai) + T_upper(A2,alpha)/R; % accumulation
end
end
T_upper 和 T_lower 都是返回数字的函数。
我想将两个函数的返回相加,并将不同索引alpha下的值保存到ga的不同位置,所以ga应该归类为约简变量,不是吗? (虽然 Matlab 无法对其进行分类。)
如何调试代码,让parfor运行成功?
【问题讨论】:
标签: matlab loops parallel-processing parfor