Matlab基于第二GUI中的活动在一个GUI中更新绘图

时间:2014-05-18 21:09:42

标签: matlab user-interface

在一个GUI(查看器)中,我有一个图像,显示通过3D图像立方体的2D切片。工具栏按钮打开第二个GUI(z轮廓),绘制2D图形,显示图像立方体中一个像素的z轮廓。我想要的是能够在原始查看器GUI中单击不同的像素时动态更新此绘图。我已经查看了linkdata,但我不确定是否可以使用它来链接两个GUI。是否有一种简单的方法来执行此操作没有每次单击一个新像素并在新输入位置进行重新创建第二个GUI时?

1 个答案:

答案 0 :(得分:0)

你绝对可以在不重新创建第二个GUI的情况下完成它。

在不知道您的具体代码的情况下,我会说您应该在第一个GUI中存储对第二个GUI的引用,然后在单击第一个GUI中的像素的回调中,通过存储的引用更改第二个GUI中的数据(例如图形处理)。您可以在图中存储任意数据,例如使用函数guidata。一点代码。

...
figure2 = figure();
figure1 = figure('WindowButtonDownFcn',@myCallback);
guidata(figure1, figure2);
...
function myCallback(obj,eventdata)
figure2 = guidata(obj);
...

更容易,但更容易出错的是使用全局变量来存储引用。