1、matlab拟合工具箱使用1.打开 CFTOOL工具箱在 Matlab 6.5 以上的环境下,在左下方有一个“Start“按钮,如同 Windows 的开始菜单,点开它,在目录“ Toolboxes“下有一个“Curve Fitting“,点开“ Curve Fitting Tool“,出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。也可以在命令窗口中直接输入“ cftool“,打开工具箱。2.输入两组向量 x,y首先在 Matlab 的命令行输入两个向量,一个向量是你要的 x 坐标的各个数据,另外一个是你要的 y 坐标的各个数据。输入以后假定叫 x 向量与 y 向量,可
2、以在 workspace 里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。例如在命令行里输入下列数据:x = 196,186, 137, 136, 122, 122, 71, 71, 70, 33;y = 0.012605; 0.013115; 0.016866; 0.014741; 0.022353; 0.019278; 0.041803; 0.038026; 0.038128; 0.088196;3.选取数据打开曲线拟合共工具界面,点击最左边的“Data.“按钮,出现一个 Data 对话框,在 Data Sets 页面里,在 X Data 选项
3、中选取 x 向量,Y Data 选项中选取 y 向量,如果两个向量的元素数相同,那么Create data set 按钮就激活了,此时点击它,生成一个数据组,显示在下方 Data Sets 列表框中。关闭 Data 对话框。此时 Curve Fitting Tool 窗口中显示出这一数据组的散点分布图。4.拟合曲线( 幂函数 power)。点击 Fitting.按钮,出现 Fitting 对话框, Fitting 对话框分为两部分,上面为 Fit Editor,下面为 Table of Fits,有时候窗口界面比较小,Fit Editor 部分会被收起来,只要把 Table of Fits 上
4、方的横条往下拉就可以看见 Fit Editor。在 Fit Editor 里面点击 New Fit 按钮,此时其下方的各个选框被激活,在 Data Set 选框中选中刚才建立的 x-y 数据组,然后在 Type of fit 选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是:Custom Equations 用户自定义函数Expotential e 指数函数Fourier 傅立叶函数,含有三角函数Gaussian 正态分布函数,高斯函数Interpolant 插值函数,含有线性函数,移动平均等类型的拟合Polynomial 多项式函数Power 幂函数Rational 有理函数(不太
5、清楚,没有怎么用过)Smooth Spline ?(光滑插值或者光滑拟合,不太清楚)Sum of sin functions 正弦函数类Weibull 威布尔函数(没用过)在这个 Type of fit 选框中选择好合适的类型,并选好合适的函数形式。于是点击 Apply 按钮,就开始进行拟合或者回归了。此时在 Curve Fitting Tool 窗口上就会出现一个拟合的曲线。这就是所要的结果。在上面的例子中,选择 sum of sin functions 中的第一个函数形式,点击 Apply 按钮,就可以看见拟合得到的正弦曲线。5.查看拟合结果信息在 Fitting 对话框中的 Result
6、s 文本框中显示有此次拟合的主要统计信息,主要有General model of sin1:. (函数形式)Coefficients (with 95% conffidence range) (95%致信区间内的拟合常数)a1=. ( . .) (等号后面是平均值,括号里是范围).Godness of fit: (统计结果)SSE: . (方差)R-squared: . (决定系数,不知道做什么的)Adjusted R-squared: . (校正后的决定系数,如何校正的不得而知)RMSE: . (标准差)上面的例子中经过拟合得到的函数最后为y=3.133*x(-1.007)-0.004233
7、6.拟合分析(Analysis)。7.导出图片另外要说的是,如果想把这个拟合的图像导出的话,在 Curve Fitting Tool 窗口的 File 菜单下选 Print to Figure,此时弹出一个新的图像窗口,里面是你要导出的图像,在这个 figure 窗口的 File菜单里再选 Export,选择好合适的格式,一般是 jpeg,选择好路径,点击 OK 就可以了。出来的图像可以在 Word 等编辑环境中使用,就不多说了。要修改图像的性质,如数据点的大小、颜色等等的,只需要在对象上点右键,就差不多可以找到了。另外使用程序来进行曲线拟合:p=polyfit(xdata,ydata,n) n 为选取的方法a=polyval(p,xdata) 进行曲线拟合后计算所得到得值可以将拟合曲线与源曲线画出来:plot(xdata,ydata,b*,xdata,a,r-)legend(ydata,fit);