在一个父函数内部,我有一个与gui上的按钮相关的回调函数。
当按下按钮时,它所做的一件事是定义一个需要持久化的变量(比如说X),以便稍后,父函数的另一个子函数可以使用X. (即回调函数A创建变量X. 稍后,functionB需要知道变量X,以了解要采取的特定路径
有什么方法可以解决这个问题吗? 我已经阅读了使用句柄将其传递给第二个函数,但我似乎无法找到一种方法来实现这一点。
答案 0 :(得分:0)
间接来自Matlab guidata
documentation:
在第一个回调函数中:
function first_Callback(hObject, eventdata, handles)
% add some additional data as a new field called x
handles.x = 1;
% Save the change you made to the structure
guidata(hObject, handles)
在第二个回调函数中只使用handles.x
因为句柄已作为参数传递给第二个回调,如果它们属于同一个父图形。
function second_Callback(hObject, eventdata, handles)
% a will have the value 1
a = handles.x;
注意:即使您将句柄保存到hObject
(这是调用回调函数的当前对象),句柄结构对同一图形上的其他对象也是可见的。将handles
结构保存到hObject
并保存到父图几乎相同。此外,如果您对guidata
结构进行了更改,则只需使用handles
。如果您只读取handles
成员的值,则不需要在此之后保存它。