这应该是一个简单的解决方案的问题,但我仍然无法找到一个。假设我有两个matlab图形fig1.fig,fig2.fig,我想加载并显示在同一个绘图窗口中。我该怎么办?我的意思是,我很确定我可以完成任务,使用一些低(呃)级别的图形命令,从一个图像中提取内容,并把它们放在第二个,尽管如此,我不能相信,没有任何高级别的功能(load fig2 on top of fig1),这样做.比较2个图(不幸的是已经保存)是一个非常常见的任务,我会说。
fig1.fig
fig2.fig
load fig2 on top of fig1
w3nuxt5m1#
它不清楚如果你想提取数据从数字和比较数据,或者如果你想合并从两个图到一个单一的图。这里是你如何将合并两个数字合并为一个(如果这是你想做的)。首先加载数字:
fig1 = open('FigureFile1.fig'); fig2 = open('FigureFile2.fig');
从图中获取轴对象
ax1 = get(fig1, 'Children'); ax2 = get(fig2, 'Children');
现在将hangle图形对象从ax2复制到ax1。* 如果您的图形只有一个轴,则不需要循环 *
ax2
ax1
for i = 1 : numel(ax2) ax2Children = get(ax2(i),'Children'); copyobj(ax2Children, ax1(i)); end
注意此示例假设您的图形具有相同的轴数,并且您希望将对象从第二个图形中的第一个轴复制到第一个图形中的第一个轴。它取决于你找出适当的索引,如果轴指数不排队。
gzszwxb42#
斯莱顿给出的答案是好的。这里还有一个提示:如果您在两个单独的Matlab图形窗口中打开了两个图,请不要忘记您可以点击复制正确的图。通过单击Matlab图形窗口中的箭头指针,然后单击绘制的线来执行此操作。复制(绘制的直线、文本框等)对象。然后,类似地在其他Matlab图形窗口中选择轴并粘贴它。我给予这个“愚蠢”的解决方案,因为它已被证明是有用的协作会议。在某人(比如你的顾问)面前点击复制,可以准确地传达正在比较的曲线,而且它可以防止你在别人面前启动代码。
jvidinwx3#
您也可以转到菜单中的文件,生成代码,为每个图。然后将两者复制并粘贴到同一个mfile中,中间使用“hold on”,并更改与外观相关的细节。然后运行新的m文件。
3条答案
按热度按时间w3nuxt5m1#
它不清楚如果你想提取数据从数字和比较数据,或者如果你想合并从两个图到一个单一的图。
这里是你如何将合并两个数字合并为一个(如果这是你想做的)。
首先加载数字:
从图中获取轴对象
现在将hangle图形对象从
ax2
复制到ax1
。* 如果您的图形只有一个轴,则不需要循环 *注意此示例假设您的图形具有相同的轴数,并且您希望将对象从第二个图形中的第一个轴复制到第一个图形中的第一个轴。它取决于你找出适当的索引,如果轴指数不排队。
gzszwxb42#
斯莱顿给出的答案是好的。这里还有一个提示:如果您在两个单独的Matlab图形窗口中打开了两个图,请不要忘记您可以点击复制正确的图。通过单击Matlab图形窗口中的箭头指针,然后单击绘制的线来执行此操作。复制(绘制的直线、文本框等)对象。然后,类似地在其他Matlab图形窗口中选择轴并粘贴它。
我给予这个“愚蠢”的解决方案,因为它已被证明是有用的协作会议。在某人(比如你的顾问)面前点击复制,可以准确地传达正在比较的曲线,而且它可以防止你在别人面前启动代码。
jvidinwx3#
您也可以转到菜单中的文件,生成代码,为每个图。然后将两者复制并粘贴到同一个mfile中,中间使用“hold on”,并更改与外观相关的细节。然后运行新的m文件。