如何将两个图形文件合并为一个文件

Aco*_*rbe 6 matlab matlab-figure

这应该是一个简单的解决方案的问题,但我仍然无法找到一个.

假设我有2个matlab数字fig1.fig,fig2.fig我想加载并显示在同一个绘图窗口中.

我该怎么办?

我的意思是,我很确定我可以使用一些低(呃)级别的图形命令完成任务,该命令从一个图像中提取内容并将它们放在第二个图像中,但我无法相信没有任何高级函数(load fig2 on top of fig1)这样做...比较2个图(不幸的是已经保存)是一个非常常见的任务,我会说.

sla*_*ton 18

如果您想从数字中提取数据并比较数据,或者您想将两个数字中的图表合并为一个数字,则不清楚.

以下是如何将两个数字合并为一个(如果那就是你想做的事情)..

首先加载数字:

fig1 = open('FigureFile1.fig');
fig2 = open('FigureFile2.fig');
Run Code Online (Sandbox Code Playgroud)

从图中获取轴对象

ax1 = get(fig1, 'Children');
ax2 = get(fig2, 'Children');
Run Code Online (Sandbox Code Playgroud)

现在将hangle图形对象复制ax2ax1.如果您的数字只有一个轴,则循环不是必需的

for i = 1 : numel(ax2) 
   ax2Children = get(ax2(i),'Children');
   copyobj(ax2Children, ax1(i));
end
Run Code Online (Sandbox Code Playgroud)

注意此示例假定您的图形具有相同的轴nubmer,并且您希望将对象从第二个图形中的第一个轴复制到第一个图形上的第一个轴.如果轴索引没有排列,由您决定正确的索引.


小智 9

slayton给出的答案很好.这是另一个提示:如果您在两个单独的Matlab图形窗口中打开了两个图,请不要忘记您可以通过点击复制正确的图.通过单击Matlab图形窗口中的箭头指针,然后单击绘制的线条来完成此操作.复制(绘制的行,文本框等)对象.然后,类似地在另一个Matlab图形窗口中选择轴并粘贴它.

我给出了这个"愚蠢"的解决方案,因为它已被证明在协作会议中很有用.在某人(如顾问)面前进行点击式复制可以准确地传达正在比较的曲线,并且可以防止您在其他人面前激活代码.