The variable g in a parfor cannot be classified..

1 Ansicht (letzte 30 Tage)
freebil
freebil am 22 Okt. 2014
Bearbeitet: Edric Ellis am 23 Okt. 2014
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

Antworten (1)

Edric Ellis
Edric Ellis am 23 Okt. 2014
Bearbeitet: Edric Ellis am 23 Okt. 2014
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 Kommentare
freebil
freebil am 23 Okt. 2014
thanks but it says that IND cannot be classified then..
Edric Ellis
Edric Ellis am 23 Okt. 2014
Ah, you're right, I'll update my answer.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Parallel for-Loops (parfor) finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by