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

时间:2013-09-11 09:22:52

标签: matlab graph

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

我有传记对象:

gr=[0 1 0;0 1 1;0 0 0];
bg = biograph(gr);

我希望在我使用

时在界面的轴上显示图形
view(bg)

它打开新表格以显示图表,我尝试使用以下方法在轴中显示:

xx=view(bg);
plot(xx)

但我不能!! 冷,你帮帮我吧

谢谢

1 个答案:

答案 0 :(得分:1)

当你致电view(bg)时,它不会打开普通人物,而是打开传记查看器。这不仅包含图形的显示,还包含用于缩放和平移可视化的若干自定义控件,以及用于操作和注释图形本身的上下文菜单。传记阅读器旨在单独交互使用,而不是嵌入用户设计的GUI中。

因此无法直接/简单地在自己的轴上显示传记。

我能想到的最好的解决方法如下:

  1. 让您的GUI调用view(bg),这将在不同的窗口中显示。
  2. 致电set(0, 'ShowHiddenHandles', 'on')。这是必要的,因为传记观众隐藏了你的手柄。
  3. 致电bgfig = gcf以获取传记查看器的句柄。
  4. 使用c = get(bgfig, 'Children');获取传记查看器的孩子。
  5. 使用newAxisHandle = copyobj(c(1), myGUIFigureHandle)
  6. 将传记轴(图中的第一个孩子)复制到GUI图中
  7. 适当调整GUI图上的新轴newAxisHandle
  8. 致电close(bgfig)关闭传记观众。
  9. 感觉这是一件非常重要的事情,但我认为它会发生得足够快,以至于GUI的用户应该只注意到快速闪烁。