关于matlab polyfit的很菜的问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 03:17:37
我想要用polyfit(x,y,n)来拟合一个曲线,问题是我的x是年份,即为1990,1995,2000....2006 之类的,最后做出来的图x轴总是以0为原点,延伸到2006,我自己的点都挤在一团去了,在polyfit或plot时是不是需要注意点什么
再想问个小问题,如果在axis中将右边的值设大一点点,是不是能够根据现有的拟合函数做出一小段基本的预测

不行的话怎么办

在polyfit函数调用前加,
axis([1990,2006,0,100]),hold on;看看(0,100为自己设置的y的范围,你可以自己设置)
格式为:axis([XMIN XMAX YMIN YMAX]),详情用help axis看看.
polyfit拟合后返回一个多项式系数p,可以利用这个系数从新作图,程序如下:
假设你的数据点放在x,y内,阶次n已给定;
预测x终点max_x_forecast
预测横坐标区间为[x,max_x_forecast]
P = polyfit(x,y,n);
x_forecast = linspace(x(end),max_x_forecast,100);
y_forecast = polyval(P,x_forecast);
axis([x(1),max_x_forecast,0,100]);
hold on;
plot([x,x_forecast],[y,y_forecast],'-');
就行了,你试一试.

不是,axis只是设定坐标轴的显示范围.