我有20组数据 想用matlab根据前10组数据拟合出一个线性方程,再根据这个线性方程预测第11个数,依次循环下去,再根据第2到第11组数据预测第12个数,求指教!!!
y=[];
for j=1:10;
y(:,j)=xydata(j:j+9,2);
x=[];
x(:,j)=xydata(j:j+9,1);
P=[];
P(:,j)=polyfit(x(:,j),y(:,j),1);
Y{j}=polyval(P(:,j),x(:,j));
end
线性方程指的就是y=a*x+b;这个程序只有最后一组系数的结果,前面几次拟合的系数全是0,能帮我改改程序吗?
%我随便生成的测试集
xydata=[];
for i=1:20
xydata(i,1)=i;
xydata(i,2)=2*i+5;
end
P=[];%预测值
x=[];
y=[];
for j=1:10;
y=xydata(j:j+9,2);
x=xydata(j:j+9,1);
p=polyfit(x,y,1);
P(j)=polyval(p,j+10);
end
plot(xydata(11:20,2),'ro-');
hold on
plot(P,'b*')
legend('orginal p11-p20','prediction p11-p20');