使用Matlab将多个图形Figure文件合并

news/2024/10/23 12:26:56/

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文件合并
在这里插入图片描述


http://www.ppmy.cn/news/747719.html

相关文章

MixPY-人工智能图形化编程简介

推荐款人工智能开发的软硬件产品 ,MixPY人工智能物联网图形化编程MicroPython课程服务,完全适合中小学开展人工智能、创客、STEAM教育,感觉性能可以完胜Arduino! MixPY-人脸识别 MixPY-垃圾分类 硬件: 硬件集成度很高…

gFTP - Linux / Ubuntu 之间文件传输图形界面工具

gFTP - Linux / Ubuntu 之间文件传输图形界面工具 https://www.gftp.org/ gFTP is a free multithreaded file transfer client for *NIX based machines. Ubuntu 桌面左侧的竖条是 Launcher (启动器栏),在 Launcher 上可能找不到要使用的应用程序。 按下键盘上的…

cass打开dwg文件无效_CAD文件打开时图形文件显示无效怎么办

当我们从别处复制过来的CAD文件在我们打开时候提示我们【CAD图形文件无效】,然后打不开我们所需要的文件,或者在某一次CAD软件出现错误出现了之后,我们某一个CAD文件也都打不开了,也是提醒我们【CAD图形文件无效】 面对这样的问题我们该如何解决呢,下面我们来分析和解决这…

常见图形文件格式介绍

常见图形文件格式介绍 文件格式(file format)是指电脑为了存储信息而使用的对信息的特殊编码方式,是用于识别内部储存的资料。比如有的储存图片,有的储存程序,有的储存文字信息。每一类信息,都可以一种或多…

信创办公--基于WPS的Word最佳实践系列(使用智能图形丰富表达内容)

信创办公–基于WPS的Word最佳实践系列(使用智能图形丰富表达内容) 应用背景 在日常的工作中,我们经常会需要直观形象的表达出我们想要表达的内容,这个时候用图形的形式表达是最有力的方式,我们可以通过智能图形来更加…

cass权限被计算机保护,cass图形文件被写保护为什么

步骤一:先把“Server”服务设置为“自动启动”模式 1.在电脑桌面找到“计算机/此电脑”图标,然后右键点 击,在下拉菜单里找到“管理”选项,点 击打开。 2.这时候会跳转出“计算机管理”界面弹窗: 在左侧栏找到“服务”…

【Linux】Haproxy搭建Web群集

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Haproxy搭建Web群集 一、Haproxy概述1.常见的Web集群调度器2.Haproxy应用分析3.Haproxy常用调度算法4.Haproxy的主要特性5.LVS、Nginx、Haproxy的区别 二、Haproxy搭建Web群集…

MySQL安装失败starting the sever

MySQL安装失败starting the sever 如果电脑是第一次安装MySQL,一般不会出现这样的报错。starting the sever失败,通常是因为上次安装该软件没有清除干净。 第一种解决方法:完全卸载mysql,重新安装 完全卸载该软件的办法&#…