您的位置:首页 > 编程语言 > MATLAB

MATLAB 之数据拟合(最快速的方式,一学就会)

2013-12-09 14:17 405 查看
       采用最小二乘法对一对数据进行数据拟合,新手可能采用command 窗口输入代码的形式,再次我特别希望各位朋友能更快捷一下。

       不要总说自己是新手,不会,都是借口,在此我希望大家几十秒钟搞定的事,不要浪费时间写代码了。

       首先用大家常用的写代码的方式:

     序号 x y z
1 426.6279 0.066 2.897867
2 465.325 0.123 1.621569
3 504.0792 0.102 2.429227
4 419.1864 0.057 3.50554
5 464.2019 0.103 1.153921
6 383.0993 0.057 2.297169
7 416.3144 0.049 3.058917
8 464.2762 0.088 1.369858
9 453.0949 0.09 3.028741
10 376.9057 0.049 4.047241
11 409.0494 0.045 4.838143
12 449.4363 0.079 4.120973
13 372.1432 0.041 3.604795
14 389.0911 0.085 2.048922
15 446.7059 0.057 3.372603
16 347.5848 0.03 4.643016
17 379.3764 0.041 4.74171
18 453.6719 0.082 1.841441
19 388.1694 0.051 2.293532
20 444.9446 0.076 3.541803
21 437.4085 0.056 3.984765
22 408.9602 0.078 2.291967
23 393.7606 0.059 2.910391
24 443.1192 0.063 3.080523
25 514.1963 0.153 1.314749
26 377.8119 0.041 3.967584
27 421.5248 0.063 3.005718
28 421.5248 0.063 3.005718
29 421.5248 0.063 3.005718
30 421.5248 0.063 3.005718
31 421.5248 0.063 3.005718
32 421.5248 0.063 3.005718
33 421.5248 0.063 3.005718
34 421.5248 0.063 3.005718
35 421.5248 0.063 3.005718
36 421.5248 0.063 3.005718
37 416.1229 0.111 1.281646
38 369.019 0.04 2.861201
39 362.2008 0.036 3.060995
40 417.1425 0.038 3.69532

现在要对其求x与y 的关系:

clear all
>> p=polyfit(x,y,2);
>> x1=300:10:600;
>> y1=polyval(p,x1);
>> plot(x,y,'*r',x1,y1,'-b')
>> plot(x,'DisplayName','x','YDataSource','x');figure(gcf)


  下面重点介绍下一个方法:

   在命令行输入:  cftool 弹出下面的窗口:

 


在X data 选择x变量,Y data选择y变量,线性拟合选择2次,出现下面的窗口:



也可以选择其他的函数拟合,一般常用的是高斯拟合:



得到的不仅仅是想要的函数表达式,还有Goodness of fit:

  SSE: 0.008294

  R-square: 0.666

  Adjusted R-square: 0.6169

  RMSE: 0.01562

可以用来分析拟合数据函数的好坏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab