matlab索引超过数组边界,应如何处理?

运行结果及报错内容

为什么m只能是1,索引不能超过1?

clc,clear
yt = xlsread('a01.xlsx','B3:F26');
data = yt;

    alpha=0.3;
    n=length(yt(1,:));
    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

img

我想要达到的结果

如何才能做到data取得每一行的数据?

img