Ошибка при использовании codistributed/subsasgn (строка 131) Назначение имеет больше не-одноэлементных rhs-измерений, чем не-одноэлементные подписки

Я выполняю свой код параллельно, мой локальный профиль имеет два ядра. этот код является алгоритмом Forward в модели скрытого маркова. мой код здесь:

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 а также elnproduct а также eln это только одно значение в double тип.

и я получаю эту ошибку:

Ошибка использования forward_algo>(spmd) (строка 45)
Обнаружена ошибка на рабочих 1 2.
Ошибка в forward_algo(строка 45) spmd

Caused 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 ошибка. кто-нибудь может помочь?

благодарю вас

0 ответов

Другие вопросы по тегам