The variable g in a parfor cannot be classified..

1 回表示 (過去 30 日間)
freebil
freebil 2014 年 10 月 22 日
編集済み: Edric Ellis 2014 年 10 月 23 日
Can anyone help me with this?
parfor j=1:N
z1r=normrnd(Z1(1),Z1(2)); %Random sample from distribution of Z1
z2r=normrnd(Z2(1),Z2(2)); %Random sample from distribution of Z2
for i=1:size(T,2)
g(i)=Threshold-M(i,1)-(sqrt(lambda1)*V1(i)*z1r)-(sqrt(lambda2)*V2(i)*z2r);
if g(i)>0 %safe
IND(i,j)=0;
else %failure
IND(i,j)=1;
end
end
end

回答 (1 件)

Edric Ellis
Edric Ellis 2014 年 10 月 23 日
編集済み: Edric Ellis 2014 年 10 月 23 日
It looks like you could simply replace g(i) with g and then hoist the inner for-loop bounds calculation out of the PARFOR loop. (Inner FOR loops must have constant bounds to be able to run correctly).
I.e.
tn = size(T, 2);
parfor j = 1:N
...
for i = 1:tn
...
end
end
  2 件のコメント
freebil
freebil 2014 年 10 月 23 日
thanks but it says that IND cannot be classified then..
Edric Ellis
Edric Ellis 2014 年 10 月 23 日
Ah, you're right, I'll update my answer.

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

カテゴリ

Help Center および File ExchangeParallel for-Loops (parfor) についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by