Matlab使用cftool进行曲线拟合

第一步,导入要拟合的输入和输出数据

导入excel时,如果作为列矢量导入,则会将excel的数据按列导入,并且,默认将第一行的变量名作为每一列的矢量名。

第二步,打开插件curve fitting

在应用程序里打开,或者输入命令cftool均可

该工具的界面如下

第三步,选择输入和输出数据

下拉会显示当前已经导入的列矢量,可以进行选择,比如刚才导入的x和y矢量。

选择好x和y,因为右侧选了自动匹配Auto fit,所以选完之后就会自动出现拟合结果和曲线

比如,这里拟合出来的就是y=5x+3

这里因为函数关系很明显,所以自动选择了,如果函数关系不明显,则我们可以手动选择匹配方式。

如果是线性关系,一般使用多项式逼近Polynomial就可以了。

需要注意的是:拟合的函数要与实际点相符合,一般来说y随x线性变化的就用线性函数拟合,y随x大幅度变化就用指数函数拟合等等。Matlab中含有多项自带函数工具箱提供的拟合类型有

  • Custom Equations:用户自定义的函数类型;
  • Exponential:指数逼近,有2种类型, a∗exp (b∗x)a*exp(b*x)a∗exp(b∗x) 、 a∗exp(b∗x)+c∗exp(d∗x)a*exp(b*x) + c*exp(d*x)a∗exp(b∗x)+c∗exp(d∗x);
  • Fourier:傅立叶逼近,有7种类型,基础型是 a0+a1 ∗ cos(x∗w)+b1∗sin(x∗w)a0+a1*cos(x*w)+b1*sin(x*w)a0+a1∗cos(x∗w)+b1∗sin(x∗w);
  • Gaussian:高斯逼近,有8种类型,基础型是 a 1 ∗ e x p ( − ( ( x − b 1 ) / c 1 ) 2 ) a1*exp(-((x-b1)/c1)^2)a1∗exp(−((x−b1)/c1)2);
  • Interpolant:插值逼近,有4种类型,Nearest neighbor、Linear、Cubic、Shape-preserving(PCHIP);
  • Linear Fitting:线性拟合;
  • Polynomial:多项式逼近;
  • Power:幂逼近,有2种类型,a∗xba*x^ba∗xb、a∗xb+ca*x^b+ca∗xb+c;
  • Rational:有理数逼近;
  • Smoothing Spline:平滑逼近;
  • Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a 1 ∗ s i n ( b 1 ∗ x + c 1 ) a1*sin(b1*x + c1)a1∗sin(b1∗x+c1);
  • Weibull:只有一种,a∗b∗x (b−1)∗exp(−a∗xb)a*b*x^(b-1)*exp(-a*x^b)a∗b∗x(b−1)∗exp(−a∗xb);

具体参考这篇文章:

Matlab使用cftool拟合曲线_matlab 拟合工具箱函数调用_上厕所也要穿校服的博客-CSDN博客

总结:cftool是matlab中一个十分好用的工具箱,使用者可以先输入自变量(x)和因变量(y),这时候出现了点的分布,根据点的分布选择合适的函数进行拟合,需要注意的是拟合函数的阶数不能太大,一般不超过7(询问过授课老师),否则可能出现过拟合。

相关推荐
鱼毓屿御2 分钟前
Python 装饰器与函数调用机制(复习笔记 · 2026-07-07)
开发语言·python
浩瀚地学2 分钟前
【Java基础复习】IO流(二)
java·开发语言·经验分享·笔记·学习
宝贝儿好8 分钟前
【LLM】第三章:BERT讲解+情感分析案例
人工智能·深度学习·神经网络·算法·自然语言处理·bert
z小猫不吃鱼11 分钟前
06 权重幅值剪枝、剪枝后微调与稀疏网络训练:模型剪枝中的三个基本问题
网络·算法·剪枝
^yi15 分钟前
【C++】内存管理
开发语言·c++
AC赳赳老秦21 分钟前
采购专员自动化:OpenClaw 自动比价、生成询价单、跟踪供应商报价进度实战指南
开发语言·数据库·人工智能·python·自动化·github·openclaw
QiLinkOS22 分钟前
QiLink OS的失败数据共享平台的运作模式是否适用于所有行业?
android·开发语言·人工智能·算法·重构·开源
CRMEB定制开发25 分钟前
企业级Java电商系统选型路线图:从零到上线全流程拆解
java·开发语言·商城系统·小程序商城
Zhou14113626 分钟前
Java常见面试题3
java·开发语言
云栖梦泽34 分钟前
从 IMX415 摄像头驱动理解 Media Controller 框架
linux·开发语言·c++·嵌入式硬件