1、给出一行数据,这里使用sin函数来进行数据拟合,人为的加入了一些噪声:aa=sin(0:0.05:pi);aa=aa+randn(1,63)/100;bb=0:0.05:pi;plot(bb,aa,'bo')。
2、然后就可以使用fit命令进行数据拟合了。ff=fit(bb,aa,'poly2');回车之后出现如下情况,数据报错。
3、进行如下修改:aa=aa';bb=bb';ff=fit(bb,aa,'poly2');可以看到ff有三个参数,这主要是poly2起到了作用,意思是二阶拟合。
4、plot(ff,bb,aa);看图来说,效果还不错。
5、可以计算一下它们之间的差值。cc=-0.4185*bb.^2+1.136*bb-0.05554;dd=cc-aa;plot(dd);std(dd)ans=0.1665。
6、当然,后面的poly2也可以改成为poly10或者其他数值,后面的数值表示阶数,在比较简单的图形中,少量的阶数就可以很好的进行数据拟合,但是如果复杂的图形的话,就需要较多的阶数。