Proper classification of variables in parfor loop

Hi there I have a loop that I would like to run with parfor. A simplified version of the code is
parfor qx_index=1:Nsx*Nx
for qy_index=1:Nsx*Nx
chi(qx_index,qy_index,:)=function(other_variables,qx_index,qy_index)
end
end
When I run the code I get the following error:
Error: The variable chi in a parfor cannot be classified.
I cannot figure out why this doesn't work - help?

Antworten (1)

Sean de Wolski
Sean de Wolski am 5 Aug. 2014
Bearbeitet: Sean de Wolski am 5 Aug. 2014
What you have above works fine for me (filling in a few of the blanks)...
chi = zeros(2,3);
parfor qx_index=1:2
for qy_index=1:3
chi(qx_index,qy_index,:)=afunction(qx_index,qy_index)
end
end
And
function z = afunction(y,x)
z = y*x;

3 Kommentare

Henrik
Henrik am 5 Aug. 2014
Hmm, that is really weird! Your example also works for me. Could it be something specific in the function that I am using? I could upload everything, but it's a rather large project with several files...
Adam
Adam am 5 Aug. 2014
There are a number of rules surrounding the functions you can use in a parfor loop. For example you cannot use nested functions or non-transparent functions like eval. Maybe your function does not meet these criteria?
Uhuh, it is a rather complicated function, so that might be the issue. On the other hand, it works if I do
for qx_index=1:Nsx*Nx
parfor qy_index=1:Nsx*Nx
chi(qx_index,qy_index,:)=function(other_variables,qx_index,qy_index)
end
end

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 5 Aug. 2014

Kommentiert:

am 6 Aug. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by