这应该是一个小问题,但仍然无法找到一个解决方案。如何将两个图形文件合并为一个文件
假设我有2个matlab数字fig1.fig
,fig2.fig
我想要加载并显示在同一个绘图窗口中。
我该怎么办?
我的意思是,我很确定我可以使用一些低(er)级别的图形命令完成任务,该命令从一幅图像中提取内容并将它们放入第二个图像,但我不敢相信没有任何高(load fig2 on top of fig1
)这样做...比较2个地块(不幸已经保存)是一个非常普遍的任务,我会说。
这应该是一个小问题,但仍然无法找到一个解决方案。如何将两个图形文件合并为一个文件
假设我有2个matlab数字fig1.fig
,fig2.fig
我想要加载并显示在同一个绘图窗口中。
我该怎么办?
我的意思是,我很确定我可以使用一些低(er)级别的图形命令完成任务,该命令从一幅图像中提取内容并将它们放入第二个图像,但我不敢相信没有任何高(load fig2 on top of fig1
)这样做...比较2个地块(不幸已经保存)是一个非常普遍的任务,我会说。
它不清楚您是否想从数字中提取数据并比较数据,或者如果您想将两个数字的图组合成一个数字。
这里是你如何将两个数字为一个(如果那是你想要做什么)..
首先加载数字:
fig1 = open('FigureFile1.fig');
fig2 = open('FigureFile2.fig');
获取轴从附图中的物体
ax1 = get(fig1, 'Children');
ax2 = get(fig2, 'Children');
现在将挂钩图形对象从ax2
复制到ax1
。 的循环不是neccesary如果你的人物只有一个轴
for i = 1 : numel(ax2)
ax2Children = get(ax2(i),'Children');
copyobj(ax2Children, ax1(i));
end
注意这个例子假设你的人物有轴相同的2-14,并且要复制从第一轴对象第一个图上的第一个轴与第二个图相对应。如果轴索引不排列,它可以让你找出合适的索引。
slayton给出的答案很好。这里有另一个提示:如果你在两个独立的Matlab图窗口中打开两个图,不要忘记你可以点击复制适当的图。通过单击Matlab图形窗口中的箭头指针,然后单击绘制的线来完成此操作。复制(绘制线条,文本框等...)对象。然后,在其他Matlab图形窗口中同样选择轴并粘贴。
我给这个'愚蠢'的解决方案,因为它已被证明是有用的协作会议。在某人面前点击复制(比如你的顾问)可以准确地传达比较哪些曲线,并防止你在别人面前激发代码。
这也不错。 – Acorbe
对于每个图,您还可以转到菜单中的文件生成代码。 然后将它们复制并粘贴到同一个mfile文件中,并在两者之间保留“,并更改与外观相关的详细信息。 然后运行新的m文件。
这是一个常见的任务,但通常的做法是重新绘制数据(至少在我的经验中)。任何你无法重新生成数据的理由? – John
'.fig'文件已经存在;它们由不同的代码生成,其结果我想比较。他们需要一段时间才能运行,而不是找出操纵图形的方法。 :( – Acorbe
嗯,另一个窍门是将相关数据存储到文件中,并在稍后阅读。意识到这可能不适用于您的情况。 – John