【问题标题】:Matlab GUI: migrate a plot to a new windowMatlab GUI:将绘图迁移到新窗口
【发布时间】:2011-11-16 01:47:39
【问题描述】:

我遇到过这样的问题,希望大家能帮帮我。

我的 GUI 中有一个情节,其中包含具有不同 linspecs 的多行和一组图例。 而且我制作了一个上下文菜单,它应该允许用户在新窗口中打开完全相同的图(保留所有行设置、标​​题、图例等)(默认图,它可以在其中保存/编辑图)。 但是我找不到迁移绘图的简单方法,除了重新运行非常复杂的绘图命令(绘制不同的数据等)

所以,我正在通过以下两种方式寻找解决方案:

  1. 有没有一种简单的方法可以将绘图迁移到新的图形窗口中?

  2. 还是可以直接用当前界面保存绘图?

对于2,我想澄清一下,我只想保存情节,而不是所有的GUI界面。我试过saveas(handle.Plot,...),但它把GUI界面保存为一个实体。

我希望这一点已经说清楚了,感谢您的宝贵时间。干杯。

【问题讨论】:

标签: user-interface matlab plot


【解决方案1】:

对于这个任务,您可能可以使用内置的 Matlab 函数 copyobj,它正是这样做的(即您的问题中提到的第一个选项)。

下面这段代码演示了它的用法:

h1=figure;
a1=plot((1:100),rand(1,100),'r-');
hold on
plot((1:100),rand(1,100),'b+');
legend({'plot1';'plot2'});
h2=figure;
copyobj(get(h1,'children'),h2);

希望它也适用于您的情况。

更新:据我了解,您的第二个解决方案将涉及 saveas 函数,不幸的是该函数适用于图形环境而不适用于轴(正如您所经历的那样)。因此,解决方法可能包括使用上面给出的方法将所需的轴复制到新图形,然后使用saveas

【讨论】:

  • 感谢您的回答。现在我下班了,所以我明天试试你的答案。这似乎很有道理。 :D
猜你喜欢
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 2019-11-30
  • 1970-01-01
相关资源
最近更新 更多