Effacer les filtres
Effacer les filtres

for loop inside parfor loop

1 vue (au cours des 30 derniers jours)
Karthik
Karthik le 13 Jan 2015
Modifié(e) : Matt J le 13 Jan 2015
Hello, i am getting the following error for this loop.
Error using In (line 78) Error: The variable f in a parfor cannot be classified. See Parallel for Loops in MATLAB, "Overview".
parfor j = 1:size(lam,2);
c(:,j) = fminunc(@(c) (chi1(c, K0_com)), cint, options);
for i = 1:Steps*Steps
f(i,j) = K0_com(:,i)'*c(:,j);
f(i,j) = (f(i,j)>0)*f(i,j);
end
end
How can I fix this? I did not see any warning or error when I wrote this.

Réponse acceptée

Matt J
Matt J le 13 Jan 2015
Modifié(e) : Matt J le 13 Jan 2015
I would take the processing of f out of the loop altogether. Just post-compute it using vectorized methods:
parfor j = 1:size(lam,2);
c(:,j) = fminunc(@(c) (chi1(c, K0_com)), cint, options);
end
f=K0_com.'*c;
f=f.*(f>0);

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by