Proper classification of variables in parfor loop

5 vues (au cours des 30 derniers jours)
Henrik
Henrik le 5 Août 2014
Commenté : Henrik le 6 Août 2014
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?

Réponses (1)

Sean de Wolski
Sean de Wolski le 5 Août 2014
Modifié(e) : Sean de Wolski le 5 Août 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 commentaires
Adam
Adam le 5 Août 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?
Henrik
Henrik le 6 Août 2014
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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Get Started with Statistics and Machine Learning Toolbox 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