将matlab中多幅图合成为一幅图,MATLAB画图之多个图以子图的形式合为一个图

解决问题:已经画好了多个figure,在不重复添加画图程序时,将多个图合为一个图。

通常我们会将各个图单独画出来看效果,但是写文章过程中,经常为了排版等问题,需要将几个图分别以子图的形式合为一个图,这时候使用subplot,然后将各个图重新在子图中画出,但是这种方法,我们需要将这些的画图程序重新写一遍或者复制一遍,在这里我们使用一个创建子对象的方法实现,不需要再添加画图程序。

MATLAB中的图像,实际上是一个对象集合,打开任意图像,输入gcf就显示当前图像的对象组成:

ef5746022b4824207d378d056e1607c4.png

其中与图像内容相关的子对象为:Children和CurrentAxes。

每个坐标轴对象(CurrentAxis)又有自己的子对象:

9956b01630c3984216aabfa6ca3f5207.png

解决方法:

如果将两个图做为子图重绘到新的figure,即需要将其中的坐标轴对象导出,复制到新的figure的子图中。

程序如下:

clear;

clc;

close all;

t = 0:0.001:10;

y1 = sin(t);

y2 = cos(t);

figure(1);

plot(t,y1);

figure(2);

plot(t,y2);

fig(1) = get(figure(1), 'CurrentAxes');

fig(2) = get(figure(2), 'CurrentAxes');

figure(3);

subplot(2,1,1);

axChildren = get(fig(1),'Children');

copyobj(axChildren, gca);

subplot(2,1,2);

axChildren = get(fig(2),'Children');

copyobj(axChildren, gca);

程序运行结果:

figure 1:

6905c67b18912bba0d31b36385862410.png

figure 2:

377dcd4c07134ffbfff0555e3b06de6e.png

figure 3:

85acd507faf38ac2b5382b8f212b7829.png

标签:axChildren,figure,get,对象,画图,图以子,fig,MATLAB

来源: https://www.cnblogs.com/pupilLZT/p/12542506.html

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值