[请问] 请问我这个循环的CODE,写得对吗 @@??

楼主: Ecampus (7.7)   2018-05-23 17:17:08
https://imgur.com/a/xAtl4kf
这是一个循环矩阵,从 0分钟 迭代到 160分钟
I=eye(360,360);
[Xt]是360*1的矩阵、
[A]是360*360的矩阵、
u=0
[Pt+1]跟[Pt]都是360*360的矩阵、
[Kg]是360*1的矩阵、
[H]是1*360的矩阵、
yt+1是纯量,是实测值的data、
下面是CODE:
K=zeros(360,1);
for f=2:N % f,代表从第2次迭代~到第N次迭代
x(:,1,f) = A*x(:,1,f-1);
P(:,:,f) = A*P(:,:,f-1)*A';
K(:,1,f) = P(:,:,f)*H' / (H*P(:,:,f)*H');
x(:,1,f)=x(:,1,f)+K(:,1,f)*(y(f)-H*x(:,1,f-1));
x0(1,f)=x(230,1,f);
% x0的物理意义是把卡尔曼滤波算法得到的每一k时刻的位移值放在x0中,
于是x0就是每一时刻的浓度值
P(:,:,f)=(I-K(:,1,f)*H)*P(:,:,f);;
end
y
x0
t=1:N;
plot(t,y,t,x0);
我把参数输入自己的CODE之后,结果跟想像的有落差,
所以好奇想发问一下,是否这个循环矩阵写错了??

Links booklink

Contact Us: admin [ a t ] ucptt.com