我有一个GUI(即我们称之为“第一个”),通过它我可以选择打开其他GUI(让我们称之为' Second'和'第三')。我想放一个'按钮'在“第一个”GUI上,我可以操作“第二个”的不同轴上的数字。和'第三'图形用户界面。所以,如果使用' Second'我选择使用#First;#GUI;或者'第三' GUI;一旦我选择了我开始只使用我选择的GUI(所以第三个或第二个)。现在我想要一个按钮不在每个GUI(第二个或第三个)上但只在第一个GUI上,以便操纵第二个或第三个轴1上的数字(取决于我之前选择的那个) 。此外,我想要的这个按钮是可选的,我需要在使用之后刷新我的轴。 我已尽最大努力解释情况,如果您知道任何解决方案可以帮助我,请致谢!谢谢
答案 0 :(得分:2)
您的问题类似于其他示例,例如this。
要了解如何解决问题,您需要记住MATLAB根据用户提供的轴句柄“决定”更新哪些轴。如果用户未提供句柄,则使用默认gca
(当前轴)。 gca
指向的轴是图中child
的第一个'axes'
,即findobj(hFigure,'Type','axes')
中的第一个条目。您可以阅读有关设置当前轴here的信息。
确定之后,您正在寻找的解决方案将涉及在某处存储轴手柄,并在您要更新绘图时检索正确的解决方案。存储它的常见位置是“应用程序定义的数据”( appdata ),可由setappdata
和getappdata
访问,如上面第一个链接中所提到的那样{{} 3}}
您应该接受的程序是:
setappdata(0,name,val)
(例如setappdata(0,'axTag1',handles.axTag1)
)将轴句柄存储在appdata中。第一个参数的值0
将它存储在MATLAB的 root 对象中(您可以将其视为主MATLAB窗口),这样即使任何数字都关闭,信息也是如此只要MATLAB仍处于打开状态,它就会被维护。value = getappdata(0,name)
获取相应的手柄,并使用它来更新相应的轴。