如何在Matlab中评估曲线拟合

时间:2014-05-14 11:58:51

标签: matlab

我使用Matlab分析了几个数据,因为我需要曲线拟合,我已经从文档中编写了这段代码:

% I is  14 points vector that change its value in a loop 

y =0:13;
[p,S] = polyfit(I,y,1);
[fx, delta] = polyval(p,I,S);
plot(y,I,'+',fx,I,'-');

这是我得到的:plot

我的问题是,如何评估这个'拟合',我的意思是它有多好,我怎样才能得到这条线的斜率?

更新

在Rafaeli的回答之后,我在理解结果时遇到了一些麻烦,因为fx是拟合y的拟合曲线,因为我考虑了这个问题。 ,这意味着我得到了`fx':

-1.0454    3.0800   4.3897    6.5324   4.0947  3.8975   4.3476   9.0088  5.8307  6.7166 9.8243  11.4009  11.9223

I值为:

 0.0021  0.0018   0.0017  0.0016  0.0018 0.0018 0.0017   0.0014  0.0016 0.0016  0.0014 0.0012 0.0012 0.0013

并且情节具有“我'的确切值”。 :enter image description here

所以我希望得到的结果应该接近这些价值观! Itried切换

[p,S] = polyfit(y,I,1);

但是没有更好的fx= 0.0020,所以我的问题是我怎么能这样做?

第二次更新 得到它,这是代码:

y = 0:13 p = polyfit(y,I,1) fx = polyval(p,y); 情节(Y,I,' +',Y,FX,'○&#39)

结果如下:

enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

该行由y = ax + b定义,其中a = p(1)b = p(2),因此斜率为p(1)

了解拟合有多好的一种简单方法是采用误差的均方根:rms(fx - I)。值越小,拟合度越好。