matcen.m

来自「基于kalman滤波器的信息融合 用MATLAB应用举例实现」· M 代码 · 共 32 行

M
32
字号
function [x, Ptra, time] = matcen(xfilt, PreP)

time = 0;

[ss,T,L] = size(xfilt);


x = zeros(ss,T);
P = zeros(ss*L);
I = eye(ss);
e = eye(ss);
for i = 1:(L-1)
    e = [e;I];
end


for t = 1:T
    tt = cputime;
    for i = 0:(L-1)
        for j = 0:(L-1)
            P((i*ss+1):(i+1)*ss,(j*ss+1):(j+1)*ss) = PreP(:,:,t,(i+1),(j+1));
        end
    end
    A = inv(P)*e*inv(e'*inv(P)*e);
    for i = 1:L
        x(:,t) = x(:,t) + A((i-1)*ss+1:i*ss,:)'*xfilt(:,t,i);
    end
    time = time + cputime - tt;
    P0(:,:,t) = inv(e'*inv(P)*e);
    Ptra(t) = trace(P0(:,:,t));
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?