for loop inside parfor loop

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.

 Accepted Answer

Matt J
Matt J on 13 Jan 2015
Edited: Matt J on 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);

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 13 Jan 2015

Edited:

on 13 Jan 2015

Community Treasure Hunt

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

Start Hunting!