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

时间:2012-11-07 18:38:21

标签: matlab matlab-figure

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

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

我该怎么办?

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

3 个答案:

答案 0 :(得分:18)

目前尚不清楚是否要从数字中提取数据并比较数据,或者如果您想将两个数字中的图表合并为一个数字。

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

首先加载数字:

fig1 = open('FigureFile1.fig');
fig2 = open('FigureFile2.fig');

从图中获取轴对象

ax1 = get(fig1, 'Children');
ax2 = get(fig2, 'Children');

现在将hangle图形对象从ax2复制到ax1如果你的数字只有一个轴

,那么循环是不必要的
for i = 1 : numel(ax2) 
   ax2Children = get(ax2(i),'Children');
   copyobj(ax2Children, ax1(i));
end

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

答案 1 :(得分:9)

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

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

答案 2 :(得分:2)

您还可以在每个图中的菜单“生成代码”中转到“文件”。 然后将它们复制并粘贴到同一个mfile中,中间有一个“hold on”,并更改与外观相关的详细信息。 然后运行新的m文件。