1. 以下是未进行拟合的原始曲线的实现代码

    x1=[0,2.95,6,7.0,13.1,15];
    x2=[0,3.1,6,7.1,12.9,15];
    y1=[410,328,350,365,250,245];
    y2=[400,320,348,362,250,245];
    plot(x1,y1);
    hold on $不更新图形的情况下画第二条曲线
    plot(x2,y2);

    标题
  2. 下面进行图形的拟合

点击工具➡️基本拟合➡️保形插值。

选择数据中选择data1,绘制拟合图中选择保形插值。

(这里我选择保形插值,因为我希望保留曲线的形状趋势)

可以看到虽然保形插值曲线绘制成功了,但是是三条曲线在同一个图中,而且保形曲线只能有一条,不是我想要的两条保形曲线。

3.我们换一种方法修改代码,加入cftool

x1=[0,2.95,6,7.0,13.1,15];
x2=[0,3.1,6,7.1,12.9,15];
y1=[410,328,350,365,250,245];
y2=[400,320,348,362,250,245];
cftool

点击运行,X data选择x1,Y data 选择y1,右侧选择Interpolant,method选择shape-preserving(PCHIP).

右下角的图标中就出现了使用保形插值方法拟合的曲线,这样我们就得到了一条拟合曲线了。

怎么在图形中生成第二条曲线呢,进入第四步。

4.点击文件➡️选择 generate code导出生成这条曲线的代码。

我们会发现下面的代码是函数形式的m文件,并不是我们经常用的.m脚本文件。所以这个函数是可以直接在脚本文件中进行调用的。

function [fitresult, gof] = createFit1(x1, y1)
%CREATEFIT1(X1,Y1)
%  Create a fit.
%
%  Data for 'untitled fit 1' fit:
%      X Input : x1
%      Y Output: y1
%  Output:
%      fitresult : a fit object representing the fit.
%      gof : structure with goodness-of fit info.
%
%  另请参阅 FIT, CFIT, SFIT.%  由 MATLAB 于 26-Nov-2018 11:06:07 自动生成%% Fit: 'untitled fit 1'.
[xData, yData] = prepareCurveData( x1, y1 );% Set up fittype and options.
ft = 'pchipinterp';% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, 'Normalize', 'on' );% Plot fit with data.
%figure( 'Name', 'untitled fit 1' );
h = plot( fitresult, xData, yData );
legend( h, 'y1 vs. x1', 'untitled fit 1', 'Location', 'NorthEast' );
% Label axes
xlabel x1
ylabel y1
grid on

5.如何调用函数生成曲线

按照3.4中方法我们生成这两条曲线的代码,我这里分别把函数名命名为了

function [fitresult, gof] = createFit(x2, y2)和

function [fitresult, gof] = createFit1(x1, y1)

所以只要先后调用这两个函数就可以了。具体代码如下:

x1=[0,2.95,6,7.0,13.1,15];
x2=[0,3.1,6,7.1,12.9,15];
y1=[410,328,350,365,250,245];
y2=[400,320,348,362,250,245];
createFit(x2, y2)
hold on
createFit1(x1, y1)

至此,教程结束,欢迎大家与我交流。

微博@慕亦001

如何使用MATLAB在一个图中创建多条拟合曲线的方法相关推荐

  1. pyplot画多个图,在一个图中绘制多个子图

    pyplot绘制多个子图方法 matplotlib在一个图中绘制多个子图用plt.subplot()方法. import matplotlib.pyplot as plt import numpy a ...

  2. MATLAB中利用cftool导出代码实现一张图中拟合多条平滑曲线

    MATLAB中自带的cftool拟合工具箱不能将多条曲线同时画在同一副图中,而常规的plot()函数又不能拟合平滑直线,接下来总结一种可以利用cftool导出的代码,在一张图中拟合多条平滑曲线. 首先 ...

  3. Spring Boot+RocketMQ集群只会在一个Broker中创建队列

    问题: 在使用springboot集成RocketMQ Client后,开启自动创建队列,发现只会在一个Broker中创建Topic,但是在短时间内发送多条信息,就可以在集群情况下,在多个Broker ...

  4. python boxplot 多组_Python:在一个pann中创建多个boxplots

    我已经使用R很长时间了,最近我正在学习Python. 我想在Python中在一个面板中创建多个方框图. 我的数据集是向量形式的,标签向量表示每个数据元素对应的框.示例如下:N = 50 data = ...

  5. matlab的三条线如何区分,股票的三条线代表什么意思?股票k线图中的三条线如何判断...

    股票的三条线代表什么意思? 它各自意味着KDJ三条线,在其中J线的挪动速率更快,次之是K线,比较慢的是D线.KDJ指标是股市上最常见的技术性分析工具,它在根据当日或近期几日最高成交价,最低价位及收盘价 ...

  6. vscode设置templates_在VScode中创建你的代码模板的方法

    使用VScode的用户代码片段功能,来生成自己习惯的代码模板,提升开发效率 1.选择菜单里的 文件 > 首选项 > 用户代码片段 2.选择你需要自定义模板的文件,以vue为例 3. 配置对 ...

  7. matlab换挡程序,一种基于MATLAB换挡过程中快速锁定分析数据的方法与流程

    本发明涉及汽车变速器数据分析,特别的,涉及一种基于matlab换挡过程中快速锁定分析数据的方法. 背景技术: 自动变速器的核心功能是能根据驾驶员意图进行自动换挡,解放驾驶员的左脚:在自动变速器的使用过 ...

  8. R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值)

    R语言使用pROC包在同一图中绘制两条ROC曲线并通过假设检验检验ROC曲线的AUC或者偏AUC的差异(输出p值) 目录

  9. python 子图_python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

最新文章

  1. 重温目标检测--YOLO v1
  2. bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
  3. jquery UI 后台图
  4. 成功解决TypeError int object is not iterable
  5. SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解
  6. 如何在mysql查找效率慢的SQL语句
  7. 如何用chrome查看post get及返回的数据
  8. 自定义列_如何对Pandas DataFrame进行自定义排序
  9. 使用MediaCodec硬解码h.265视频及音频进行播放
  10. .net连接mysql中文乱码问题的解决
  11. 学习C++项目—— 搭建多线程网络服务框架,性能测试(并发性能测试,业务性能测试,客户端响应时间测试,网络带宽测试)
  12. 一文搞懂三种工厂模式
  13. PG修改表字段长度报错 cached plan must not change result type Hint: Please restore the result type
  14. 前端页面点击姓名查看详情
  15. html制作网页毕业论文,网页设计与制作 (毕业论文)
  16. ThinkAdmin基本操作
  17. 计算机专业必须知道的东西——C语言的发展
  18. ​Web前端剪切板文本分享到文件发送
  19. 乐学偶得python怎么样_乐学偶得 - 主页
  20. VBA生成和为定值的随机数

热门文章

  1. Chrome浏览器安装Vue.js devtools插件
  2. DNS缓存中毒攻击与防护
  3. IC数字芯片学习各类公众号汇总
  4. c语言的if指令表示,if(赋值语句)
  5. 计算机网络:BGP路由协议
  6. linux修改用户描述的命令,Linux修改用户信息(usermod)
  7. tmux常用命令大全
  8. SVN安装步骤【详细】
  9. Util-linux
  10. BackTrack5 学习笔记三