0. 原由

Matlab使用过程中,会遇到需要将多个图形Figure文件合并成一个文件的需求,便于在一个坐标轴内对曲线进行合并的显示和比较。如下图:分别使用P控制、PID控制、模糊PID控制、神经网络PID控制方法,得到了某系统的阶跃响应结果,希望将四种控制方法的阶跃响应结果合并到同一图形Figure下。


希望合并后的结果:


1. 思路

Matlab提供了函数copyobj,可以复制图形对象及其子级,可以以此实现多个图形Figure文件的合并。

copyobj(h,p)   % 将图形对象p复制到对象h中

具体步骤为:

  • 选定目标坐标轴(axes)对象h;
  • 获取图形Figure中各个坐标轴(axes)对象中的曲线(Line)对象句柄hl和图例(Legend)对象句柄hg;
  • 使用copyobj函数将曲线hl复制到目标坐标轴h中;
  • 为曲线对象添加图例;
  • 将合并后的Figure图形保存成.fig文件。

2. 函数

笔者使用Matlab软件开发了函数CombFigs.m,实现多个图形Figure文件的合并,简单易用,下面通过实例详细演示。

function CombFigs(varargin)
% CombFigs(varargin)将不同figures图片合并到一个figure中
% 调用格式
% 极简方式:
%          CombFigs()  不带任何输入参数,将当前目录下所有fig文件合并成一个fig文件
%                      默认合并后的fig文件名为  合并Figure文件.fig
% 指定目标fig文件名:
%          CombFigs(figname)  figname为合并后的fig文件名,将当前目录下所有fig文件合并为figname文件
% 指定目标fig文件名和要合并的文件名称
%          CombFigs(figname,figfiles)  figname为合并后的fig文件名,
%                                       figfiles为待合并的fig文件,cell数组格式,将figfiles文件合并为figname文件

3. 演示

3.1 三条相位不同的正弦信号合并

%% 测试1: 三条相位不同的正弦信号合并
% 生成fig文件
t = linspace(0,4*pi,100);
y1 = sin(t);
y2 = 1.2*sin(t+pi/3);
y3 = 0.9*sin(t+2*pi/3);
hf1 = figure;
plot(t,y1,'b')
hf2 = figure;
plot(t,y2,'r--')
hf3 = figure;
plot(t,y3,'k-.')
savefig(hf1,'正弦曲线1.fig')
savefig(hf2,'正弦曲线2.fig')
savefig(hf3,'正弦曲线3.fig')
% 极简模式调用,将当前目录下所有fig文件合并为合并Figure文件.fig
CombFigs()

合并前图形:


合并后图形:


3.2 形状拼图合并

%% 测试2
% 生成fig文件
x1=[0 1 1];y1=[3 3 2];
x2=[1 2 2 1];y2=[3 3 2 2];
x3=[2 3 3 2];y3=[3 3 2 2];
x4=[0 2 0];y4=[3 1 1];
x5=[1 3 3];y5=[2 2 0];
x6=[0 2 3 0];y6=[1 1 0 0];
hf1 = figure;
fill(x1,y1,'y');
hf2 = figure;
fill(x2,y2,'m');
hold on
fill(x3,y3,'c');
hf3 = figure;
fill(x4,y4,'r');
hf4 = figure;
fill(x5,y5,'b');
hf5 = figure;
fill(x6,y6,'g');
savefig(hf1,'图形1.fig')
savefig(hf2,'图形2.fig')
savefig(hf3,'图形3.fig')
savefig(hf4,'图形4.fig')
savefig(hf5,'图形5.fig')
% 将当前目录下所有fig文件合并为合并Figure文件.fig
CombFigs('组合图形',{'图形1.fig','图形2.fig','图形3.fig','图形4.fig','图形5.fig'})
legend off

合并前图形:


合并后图形:


3.3 不同控制方法阶跃响应曲线合并

%% 测试3  不同控制方法阶跃响应曲线合并
% 将当前目录下四种控制方法阶跃响应结果fig文件合并为控制对比.fig
CombFigs('控制对比',{'P控制.fig','PID控制.fig','模糊PID控制输出.fig','神经网络PID控制.fig'})

合并前图形:


合并后图形:


3.4 百花争艳图合并

%% 测试4  百花争艳图合并
% 将当前目录下枝干、花、蝴蝶、兔子、月亮等fig文件合并为百花争艳图.fig
CombFigs('百花争艳图',{'0-枝干.fig','1-花.fig','2-兔子.fig','3-蝴蝶.fig','4-月亮.fig'})

合并前图形:


合并后图形:


4. 源程序下载

有Matlab/Simulink方面的技术问题,欢迎发送邮件至944077462@qq.com讨论。更多Matlab/Simulink原创资料,欢迎关注微信公众号:Matlab Fans
使用Matlab将多个图形Figure文件合并

使用Matlab将多个图形Figure文件合并相关推荐

  1. matlab figure 读取数据,matlab 读取figure 文件上的数据

    情况一:figure上只有一个axis: 1.首先调用h = findobj(gca,'Type','line')命令取得曲线的句柄: 2.然后调用xdata=get(h,'XData')和ydata ...

  2. MATLAB的figure文件保存成高清图片的技巧01

    figure文件保存成高清图片的技巧01 鉴于广大砖友在用MATLAB保存figure图片时,会出现图片分辨率不够高,粘贴使用不清晰,导致文章整体视觉效果欠佳的情况,我觉得有义务有责任分享一下我的经验 ...

  3. Matlab图形(Figure)中使用差值光标提取数据

    0. 原由 示波器中常用差值光标,用于捕捉曲线中的特征点,并计算出特征点之间的坐标差值. 差值光标在分析图形数据时很有用.可惜在Matlab的Figure工具栏中并没有提供,自带的数据提取功能似乎不如 ...

  4. Matlab绘制箭头坐标轴图形

    函数功能 Matlab自带绘图函数,坐标轴不带箭头,如下所示: 有时经常需要使用Matlab绘制坐标轴带有箭头的图形,特别是一些原理性的图形,只需要定性表达曲线的变化趋势,无需精确表达曲线的数量关系, ...

  5. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

    如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...

  6. 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...

    怎样将MATLAB中的数据输出到excel中 数据保存到excel文件 xlswrite(xlsfile, data, sheet, range); % sheet 和 range可以不指定 如: x ...

  7. 利用MATLAB将图片转换成coe文件、TXT文件、mif文件、bin文件

    利用MATLAB将图片转换成coe文件.TXT文件.mif文件 利用MATLAB将图片转换成coe文件 利用MATLAB将图片转换成txt文件 利用MATLAB将图片转换成mif文件 利用MATLAB ...

  8. 使用matlab绘画曲线图,6.利用Matlab绘制趋势面图形.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 6.利用Matlab绘制趋势面图形.doc4页 本 ...

  9. matlab二维三维图形绘制和坐标轴范围设置

    matlab二维绘图 一. 二维图形(Two dimensional plotting) 1. 基本绘图函数(Basic plotting function):Plot, semilogx,   se ...

  10. 用matlab绘制函数图形,matlab函数绘制 用matlab怎样绘制函数图形

    用matlab怎样绘制函数图形 函数f(x1,x2)= x1*cos x2*sin x1+x2*x2*sin x2*cos x1 0≤xi≤2∏的图形?x=0:0.1:2*pi; y=x; [x,y] ...

最新文章

  1. 吴恩达深度学习笔记(114)-RNN梯度消失问题详解
  2. [收藏] 王永民先生:自我白描
  3. python绘制直方图-python matplotlib库直方图绘制详解
  4. Java 设计模式 -- 建造者模式
  5. 《研磨设计模式》chap18 状态模式state(2)模式介绍
  6. php xml 格式化,PHP实现浏览器格式化显示XML的方法示例
  7. Java常用日志框架介绍
  8. PMC 任命Edward Sharp为首席战略及技术官
  9. [软件工程基础]结队项目——地铁
  10. HTML5学完就去浪迹天涯的我...
  11. Unity文件、META文件、Prefab文件
  12. Nature综述:宏基因组时代的病毒分类
  13. linux解压带密码zip,linux下解压有密码的rar压缩包的方法
  14. GNN学习笔记(三) Graph Neural Network概述
  15. 计算个股CAPM模型和Fama-French五因子模型(by Stata16MP)
  16. matlab cdfx,在 Simulink 中使用 ASAM CDFX 数据
  17. xinxin- 新鑫牌计算器
  18. 线性代数笔记17——正交向量与正交子空间
  19. 如何提取视频中的音频,不需要软件,在线就能做到
  20. 2023年全国最新道路运输从业人员精选真题及答案62

热门文章

  1. 1对1实时视频/语音通讯原理概述
  2. 微分方程数值解 matlab,本学期微分方程数值解课程总结(matlab代码)
  3. 烦请大家支持一票,谢谢!!
  4. Linux作为哑终端连接服务器,linux – TERM =哑终端必须具备的功能
  5. angularjs pdf插件_AngularJS实战 PDF 下载
  6. 【转】android builder.setPositiveButton处 报错
  7. 域中文件服务器的设置权限,域中文件服务器共享权限设置.pdf
  8. 网络数据爬取实例教程
  9. Centos 7.2 安装Docker CE实践并配置加速器
  10. Python开发-Django表单