Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于第二个GUI中的活动,在一个GUI中更新Matlab绘图_Matlab_User Interface - Fatal编程技术网

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

基于第二个GUI中的活动,在一个GUI中更新Matlab绘图,matlab,user-interface,Matlab,User Interface,在一个GUI查看器中,我有一个通过3D图像立方体显示2D切片的图像。工具栏按钮打开第二个GUI z-profile,该GUI z-profile绘制二维图形,显示图像立方体中一个像素的z-profile。我想要的是能够在原始查看器GUI中单击不同像素时动态更新此绘图。我已经查看了linkdata,但我不确定它是否可以用于跨两个GUI进行链接。有没有一种简单的方法可以做到这一点,而无需在每次单击新像素并输入新的输入位置时重新创建第二个GUI?您肯定可以做到这一点,而无需每次重新创建第二个GUI 在

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

您肯定可以做到这一点,而无需每次重新创建第二个GUI

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

...
figure2 = figure();
figure1 = figure('WindowButtonDownFcn',@myCallback);
guidata(figure1, figure2);
...
function myCallback(obj,eventdata)
figure2 = guidata(obj);
...
更简单但更容易出错的方法是使用全局变量来存储引用。

使用Matlab的linkdata也可以,但我在这方面没有经验。似乎您可以连接数据和图形更新,因此,如果您定义了类似z-profile的变量,然后链接到GUI 2,然后单击GUI 1更改该变量的内容,则可以工作。