matlab cftool代码_Matlab 利用slqcurvefit函数进行曲线拟合的小实例

今天突然冒出个想法,想记录一下自己的生活(有多么糟糕~~ 好留给未来的自己嘲笑)。除了QQ空间里屈指可数的几篇日志,这几乎是最正式的在网上写东西了。回想自己高中时代糟糕的语文课及高考语文成绩,以及这么多年远离散文诗歌小说的日子,写东西对我来说是有很大困难的,但我想尝试一下。作为第一篇正式的网文,本应写写自己的过去,现在和将来,可我却急于写写刚刚学到的matlab函数。。但是最重要的事情不能忘,我要把最开始的部分献给我的前女友,我爱你并在遥远的地方思念着你和我们的宝宝们。

-----------------------------分割线----------------------------very正经的---------------------------------

以前用Matlab进行曲线拟合就是直接用cftool。感觉很方便。今天想把拟合的参数提出来,网上搜索到了lsqcurvefit这个函数,感觉太棒了。好到什么程度呢?基于lsqcurvefit这个函数有了这篇文章和上面的感慨。

我没有看help,就是简单百度的用法,如下:

  1. clc; clear;
  2. fun_sample=@(a, x)(a(1)*x.^2+a(2)*x.^3);
  3. ab=[1, 1];
  4. data_x=linspace(-5,5,11);
  5. data_y=fun_sample(ab, data_x)+20*rand(1,11);
  6. aa=lsqcurvefit(fun_sample, ab, data_x, data_y)
  7. plot(data_x, data_y, '*', data_x, fun_sample(aa, data_x), 'LineWidth', 3)

心得:

  1. 利用fun=@(x,y)(x^2+y^2)来构建函数真的是太方便了,对于我这种小白代码限定在100行内的小白来说可谓首选(函数文件? No 我不喜欢太复杂的东西,因为我的程序本身就极其简单~;symbol sub?还不会用。。。)
  2. a是系数,里面还有a(1) and a(2)。 在第三行那里给了初值;
  3. data_x and data_y is horizontal coordinate and vertical coordinate,rand 产生一点随机误差,不然要拟合何用呢?几乎所有需要拟合的数据都会和方程之前存在误差的。这个误差这里我们用rand产生;
  4. 重点来啦。lsqcurvefit函数的第一个自变量是函数表达式,第二个是方程系数的初始值(初始值对结果的影响还是很大的,可以根据第一次拟合的结果来修改初始值),第三个和第四个是横纵坐标。

对了,关于前文提到的前女友,我们谈了7年恋爱,后来她和最爱她的男人结婚了,并生有两个可爱的宝宝~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值