У меня есть этот (довольно длинный) код 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, но я не знаю, что это может быть точнее. Я уже смотрел в Интернете, но с не очень удовлетворительными результатами.