コードを並行して実行しています。ローカル プロファイルには 2 つのコアがあります。このコードは、隠れマルコフ モデルのフォワード アルゴリズムです。私のコードはここにあります:
function [ eln_alpha ] = forward_algo( Obs,P,Pi_0 ,Q )
parpool('local',2);
n = length(Pi_0);
T = length(Obs);
eln_alpha = zeros(n,T,'distributed');
parfor i1=1:n
eln_alpha(i1,1) = elnproduct( eln(Pi_0(i1)) , eln(Q(i1,1)) );
end;
fi = T / numlabs;
P ;
spmd % =================>>> line 45
if labindex == 1
labSend(P, 2);
labSend(Q, 2);
end
if labindex == 2
P = labReceive(1);
Q = labReceive(1);
end
for t = ((labindex-1)*fi)+1:(labindex * fi)
if t==1
t=t+1;
end
for j=1:n
logalpha = NaN;
for i1=1:n
logalpha = elnsum(logalpha , elnproduct( eln_alpha(i1,t-1) ,eln(P(i1,j)) ) );
end;
eln_alpha(j,t) = elnproduct(logalpha , eln( Q(j,t) ));
end;
end
end
end
elnsum
andelnproduct
との結果は、タイプeln
内の 1 つの値にすぎませんdouble
。
そして、私はこのエラーが発生します:
forward_algo>(spmd) の使用時のエラー (45 行目)
ワーカー 1 でエラーが検出されました 2.
forward_algo のエラー (45 行目) spmdCaused by: Error using codistributed/subsasgn (line 131) Assignment has more non-singleton rhs dimensions than non-singleton subscripts Error using codistributed/subsasgn (line 131) Assignment has more non-singleton rhs dimensions than non-singleton subscripts
表示されているように、複数の値を単一の左側の場所に割り当ててAssignment has more non-singleton rhs dimensions than non-singleton subscripts
エラーを発生させようとしているわけではありません。誰でも助けることができますか?
ありがとうございました