User interface Matlab GUI:将绘图移植到新窗口

User interface Matlab GUI:将绘图移植到新窗口,user-interface,matlab,plot,User Interface,Matlab,Plot,我遇到了这样一个问题,希望你们能在这里帮助我 我的GUI中有一个绘图,包含多行不同的LINSpec和一组图例。 我制作了一个上下文菜单,允许用户在新窗口(默认图形,可以保存/编辑图形)中打开完全相同的绘图(保留所有线条设置、标题、图例等)。 但是,我找不到迁移绘图的简单方法,除非重新运行绘图命令,这相当复杂(绘制不同的数据等) 因此,我从以下两个方面寻找解决方案: 有没有一种简单的方法可以将绘图移植到新的图形窗口中 或者是否可以使用当前界面直接保存绘图 对于2,我想澄清一下,我只想保存绘图,而不

我遇到了这样一个问题,希望你们能在这里帮助我

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

因此,我从以下两个方面寻找解决方案:

  • 有没有一种简单的方法可以将绘图移植到新的图形窗口中

  • 或者是否可以使用当前界面直接保存绘图

  • 对于2,我想澄清一下,我只想保存绘图,而不是所有的GUI界面。我尝试了
    saveas(handle.Plot,…)
    但它将GUI界面保存为一个实体


    我希望这一点已经讲清楚了,谢谢你抽出时间。干杯。

    对于此任务,您可能可以使用内置的Matlab函数来完成此任务(即问题中提到的第一个选项)

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

    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

    谢谢您的回答。现在我不值勤了,所以明天我会试试你的答案。这似乎很有道理Da相关问题: