Proper classification of variables in parfor loop

2 ビュー (過去 30 日間)
Henrik
Henrik 2014 年 8 月 5 日
コメント済み: Henrik 2014 年 8 月 6 日
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?

回答 (1 件)

Sean de Wolski
Sean de Wolski 2014 年 8 月 5 日
編集済み: Sean de Wolski 2014 年 8 月 5 日
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 件のコメント
Adam
Adam 2014 年 8 月 5 日
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 2014 年 8 月 6 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGet Started with Statistics and Machine Learning Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by