yt = xlsread('a01.xlsx','B3:F26'); %yt为一个24×5的矩阵数据
data = yt;
n=length(yt(1,:));
alpha=0.3; % alpha大小,可以根据数据特点自行设定
n=length(data(24,:));
st1_0=yt(1); st2_0=st1_0;st3_0=st1_0;
st1=alpha*yt(1)+(1-alpha)*st1_0;
st2=alpha*st1(1)+(1-alpha)*st2_0;
st3=alpha*st2(1)+(1-alpha)*st3_0;
m = 0;
data = cell(24,5);
for j = 1:24
m = 1 + m;
for i=2:n+3
if i>n
data=[data(m,:),yhat];
end
st1=alpha*yt(i)+(1-alpha)*st1;
st2=alpha*st1+(1-alpha)*st2;
st3=alpha*st2+(1-alpha)*st3;
a=3*st1-3*st2+st3;
b =0.5*alpha/(1-alpha)^2*((6-5*alpha)*st1-2*(5-4*alpha)*st2+(4-3*alpha)*st3);
c=0.5*alpha^2/(1-alpha)^2*(st1-2*st2+st3);
yhat = a+b+c;
end
end
为什么m的数值不能超过1
data=[data(m,:),yhat];
如何才能得到所有行的数据
奇怪的代码,yhat是什么,它还没有声明就被调用了,你的第11行想要做什么,要拼接吗