我使用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,'-');
这是我得到的:
我的问题是,如何评估这个'拟合',我的意思是它有多好,我怎样才能得到这条线的斜率?
更新
在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
并且情节具有“我'的确切值”。 :
所以我希望得到的结果应该接近这些价值观! 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)
结果如下:
感谢您的帮助!
答案 0 :(得分:2)
该行由y = ax + b
定义,其中a = p(1)
和b = p(2)
,因此斜率为p(1)
。
了解拟合有多好的一种简单方法是采用误差的均方根:rms(fx - I)
。值越小,拟合度越好。