如何在MatlabGUI中显示轴上的Biograph对象

如何在MatlabGUI中显示轴上的Biograph对象,matlab,graph,Matlab,Graph,我有一个包含1个按钮(绘图)和一个轴的界面(GUI) 我有一个传记对象: gr=[0 1 0;0 1 1;0 0 0]; bg = biograph(gr); 我想在界面中的轴上显示图形,当我使用 view(bg) 它打开新窗体以显示图形,我尝试使用以下命令在轴中显示它: xx=view(bg); plot(xx) 但是我不能!! 你能帮帮我吗 谢谢你当你调用查看(bg)时,它不会打开一个普通的图形,而是打开biograph viewer。它不仅包含图形的显示,还包含几个用于缩放和平移可视

我有一个包含1个按钮(绘图)和一个轴的界面(GUI)

我有一个传记对象:

gr=[0 1 0;0 1 1;0 0 0];
bg = biograph(gr);
我想在界面中的轴上显示图形,当我使用

view(bg)
它打开新窗体以显示图形,我尝试使用以下命令在轴中显示它:

xx=view(bg);
plot(xx)
但是我不能!! 你能帮帮我吗

谢谢你

当你调用
查看(bg)
时,它不会打开一个普通的图形,而是打开biograph viewer。它不仅包含图形的显示,还包含几个用于缩放和平移可视化的自定义控件,以及用于操纵和注释图形本身的上下文菜单。biograph viewer被设计为可以自己交互使用,而不是嵌入用户设计的GUI中

因此,不可能直接/简单地在您自己的轴上显示传记

我能想到的最佳解决办法如下:

  • 让您的GUI调用查看(bg),这将在不同的窗口中显示
  • 调用
    set(0,'ShowHiddenHandles','on')
    。这是必要的,因为biograph viewer会对您隐藏其句柄
  • 调用
    bgfig=gcf
    获取biograph viewer的句柄
  • 使用
    c=Get(bgfig,'children')获取biograph查看器的子对象
  • 使用
    newAxisHandle=copyobj(c(1),myGUIFigureHandle)
  • 适当调整GUI图形上的新轴
    newAxisHandle
  • 调用
    close(bgfig)
    关闭biograph viewer

  • 这感觉很恶心,但我认为它会发生得很快,GUI的用户只会注意到一个快速闪烁。

    我不知道我的matlab会发生什么,当我尝试运行GUI时,我遇到了一个错误:这个错误出现在我所有的GUI项目中。我写的hank:gr=[0 1 0;0 0 1;0 0 0 0 0];bg=传记(gr);xx=视图(bg);设置(0,'ShowHiddenHandles','on')bgfig=gcf;c=get(bgfig,Children');newAxisHandle=copyobj(c(1),myGUIFigureHandle);关闭(bgfig);我得到了一个错误:未定义的函数或变量“myGUIFigureHandle”。有什么帮助吗?您需要将
    myGUIFigureHandle
    替换为GUI图形的句柄。