1. 问题描述
MATLAB第三方工具箱输出的图像,往往需要进一步处理,例如
mark
这两张图像,最好在MATLAB中合成到一个figure中显示,以便对比模态位移的差别。
2. 技术背景
MATLAB中的图像,实际上是一个对象集合,打开任意图像,输入gcf即显示当前图像的对象组成:
mark
其中与图像内容相关的子对象为
CurrentAxis
Children
每个坐标轴对象(CurrentAxis)又有自己的子对象:
mark
3. 解决方案
要将两个子图的图元重绘到新的figure,即需要将其中的坐标轴对象导出,复制到新的figure的子图中。关键函数为:
axChildren = get(ax(iloop),'Children');
copyobj(axChildren, gca);
4. 实施示例
4.1 打开需要重绘的两个figure
%% 子图读入
clc,clear,close all
fig(1) = open('fig1.fig'); % 打开fig文件
fig(2) = open('fig2.fig');
ax(1) = get(fig(1), 'Current