【发布时间】:2016-05-10 16:08:23
【问题描述】:
我有这个(很长)带有嵌套循环的 Matlab 代码,我想在其中并行化主要的耗时迭代。 (显然)给我带来问题的唯一变量是DMax,我得到错误:
Error: The variable DMax in a `parfor` cannot be classified.
See Parallel for Loops in MATLAB, "Overview".
这是我的代码草稿:
t0=matrix (Maxiter,1); % This is a big matrix whose dimensions are reported in brachets
Maxiter = 1E6;
DMax = zeros(Maxiter,40);
% Other Stuff
for j=1:269
% Do more stuff
for soil=1:4
parfor i =1:Maxiter
k(i,soil) = a %k is a real number
a(i,soil) = b %similar to k
% Do a lot of stuff
for t= (floor(t0(i,soil))+1):40
DMax(i,t) = k(i,soil)*((t-t0(i,soil))^a(i,soil));
% Do some more stuff
end
end
end
end
for time=1:40
% Do the final stuff
end
我想问题出在我定义 DMax 的方式上,但我不知道它可以更准确地定义。我已经在网上看了,但结果不是很满意。
【问题讨论】:
标签: matlab loops parallel-processing parfor