corrected bug for decompostion (nargout > 7) in missing_DiffuseKalmanSmoother3.m

time-shift
Michel Juillard 2010-02-22 09:29:47 +01:00 committed by Sébastien Villemot
parent 4ec9652f9e
commit f4b7840739
1 changed files with 11 additions and 5 deletions

View File

@ -296,19 +296,25 @@ if nargout > 7
decomp = zeros(nk,mm,rr,smpl+nk);
ZRQinv = inv(Z*QQ*Z');
for t = max(d,1):smpl
ri_d = Z'*iF(:,:,t)*v(:,t);
ri_d = zeros(mm,1);
di = flipud(data_index{t})';
for i = di
if Fi(i,t) > crit
ri_d = Z(i,:)'/Fi(i,t)*v(i,t)+ri_d-Ki(:,i,t)'*ri_d/Fi(i,t)*Z(i,:)';
end
end
% calculate eta_tm1t
eta_tm1t = QRt*ri_d;
% calculate decomposition
Ttok = eye(mm,mm);
AAA = P1(:,:,t)*Z'*ZRQinv*Z*R;
for h = 1:nk
BBB = Ttok*AAA;
for j=1:rr
eta=zeros(rr,1);
eta(j) = eta_tm1t(j);
decomp(h,:,j,t+h) = T^(h-1)*P(:,:,t)*Z'*ZRQinv*Z*R*eta;
decomp(h,:,j,t+h) = eta_tm1t(j)*BBB(:,j);
end
Ttok = T*Ttok;
end
end
end