matlab变量共享给另一个函数

时间:2013-06-06 23:45:06

标签: matlab

在一个父函数内部,我有一个与gui上的按钮相关的回调函数。

当按下按钮时,它所做的一件事是定义一个需要持久化的变量(比如说X),以便稍后,父函数的另一个子函数可以使用X. (即回调函数A创建变量X. 稍后,functionB需要知道变量X,以了解要采取的特定路径

有什么方法可以解决这个问题吗? 我已经阅读了使用句柄将其传递给第二个函数,但我似乎无法找到一种方法来实现这一点。

1 个答案:

答案 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成员的值,则不需要在此之后保存它。