matlab拟合曲线与origin画图联合
程序员文章站
2023-12-25 17:48:15
...
matlab拟合曲线与origin画图联合
需要用到matlab的拟合曲线中的smoothing spline功能,同时origin画的图又比较好看且可以后续做多条切线,因此记录下matlab与origin联合使用的方法,并加上用origin的tangent插件做曲线多条切线的方法。
在matlab中输入数据
在命令行窗口输入数据如下面代码所示,或者新建变量直接从excel中复制
x = [310 320 330 340 350 360 370 380 390 400 410 420 430 440 450]
y = [1.122 1.116 1.117 1.115 1.112 1.109 1.106 1.107 1.100 1.085 1.088 1.087 1.081 1.083]
matlab拟合曲线
在命令行窗口输入cftool,或者在app栏点击curve fitting进入拟合窗口
选择x和y的数据,选择拟合方法,本文用到的为smoothing spline,根据自己拟合需要和下方R-square设置smoothing parameter。
拟合得到自己想要的曲线后,Fit–>Save to workspace,将拟合相关变量创建到工作区。
z = fittedmodel(315:455)
# 得到拟合曲线x从315到455对应的y值
z=feval(fittedmodel,360)
#得到拟合曲线x为360时对应的y值
本文通过z= fittedmodel(315:455)得到对应的拟合值
在origin中画图
首先将x,y的值输入工作表中,新建两列用来放z和其对应的横坐标,为315到455。选中四列画图,将第一组数据设置为散点图,第二组数据(拟合得到)设置为折线图。
用tangent插件做多条切线
tangent插件不能做多条切线的原因是第二条切线的数据会覆盖掉第一条切线的数据,如果将第一条切线的数据复制到工作表中,自己添加一条线作为切线,就可以实现做多条切线。
步骤:首先做出第一条切线,可以看到工作表中多出两列,将其中的y值复制到工作表中新建的一列,并将刚刚多出的两列删掉,可以看到图像中的切线消失了,选中z轴对应的横坐标列和刚刚新建的切线y值列添加到表中,设置为折线图,就可以得到刚刚消失的切线,此时可以画第二条切线。