我有20组数据 想用matlab根据前10组数据拟合出一个线性方程,再根据这个线性方程预测第11个数

我有20组数据 想用matlab根据前10组数据拟合出一个线性方程,再根据这个线性方程预测第11个数,依次循环下去,再根据第2到第11组数据预测第12个数,求指教!!!

线性方程指的是系数是线性的还是自变量是线性的?
用polyfit拟合,根据拟合结果用polyval做预测就行了追问

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');


温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答