【问题标题】:In Matlab GUI, how get the figure handle of an external plot?在 Matlab GUI 中,如何获取外部绘图的图形句柄?
【发布时间】:2014-11-03 00:41:57
【问题描述】:

在 Matlab GUI 的回调函数中,我需要捕获在命令窗口中创建的绘图的图形句柄,而不是在 GUI 中。如果我在回调中简单地使用gcf,我会得到 GUI 句柄而不是图形的句柄。事实上,如果我写close(gcf),在这个回调中,GUI 会关闭,而不是我想要关闭的图形。 如何获得正确的图形手柄?

【问题讨论】:

  • 你通过命令窗口创建了什么样的情节,你是如何创建的?你能提供代码吗? (通常,您使用findobj 解决它,或者如果您使用figure(#) 创建另一个图形,则只需使用#
  • 您好,感谢您的重播!可以说在命令窗口中我只是这样做:plot(0,0)。现在,我启动我的 gui,并在回调中我想在上一个图中添加一些其他点/线,我试图让轴句柄执行 h = findobj(gcf,'Type','axes'),但 gcf 返回 GUI 句柄,而不是情节处理
  • 我的意思是:figure(405); figure(155); figure(); => hFigs = findobj(0,'Type','figure'); 然后你选择不是 gcf 的那个(0 是 MATLAB 根对象)。

标签: matlab user-interface handle figure


【解决方案1】:

除了@Dev-iL' 的建议,您可以在根目录中使用 setappdata/getappdata 来存储和检索图形句柄:

% Create dummy plot in Command Window
x = 1:100;
plot(x,x.^2);

hfigure = gcf;
setappdata(0,'hfigure',hfigure);

然后在您的 GUI 回调中:

hfigure = getappdata(0,'hfigure');

之后你就可以开始了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 2011-05-31
    • 2013-08-09
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    相关资源
    最近更新 更多