如何在 GUI MATLAB 中的不同函数中使用相同的变量

How to use the same variable in different functions in GUI MATLAB

我有一个包含以下代码的弹出菜单。有两个选项 C1 和 C2。如果用户选择 C1,我想将值设置为 10,如果用户选择 C2,我想将值设置为 20。

function pop_Callback(hObject, eventdata, handles)

contents = cellstr(get(hobject,'String'));
A = contents{get(hObject,'Value')};
if (strcmp(A,'C1'))
    X = 10;
elseif (strcmp(A,'C2'))
    X = 20;
end
set(handles.pop,X)

我想使用另一个带有按钮和静态文本的函数来显示答案,输出是,无论设置值是多少 + 12。

function push_Callback(hObject, eventdata, handles)

inX = get(handles.pop,X);
out = inX + 12;
set(handles.ans,'String',out)

但是,我在设置和获取函数时遇到了一些错误,因此我遇到了麻烦。请帮忙

也许你可以试试全局变量

function pop_Callback(hObject, eventdata, handles)
global X;
contents = cellstr(get(hobject,'String'));
A = contents{get(hObject,'Value')};
if (strcmp(A,'C1'))
X = 10;
elseif (strcmp(A,'C2'))  
X = 20;
set(handles.pop,X)
end

和global X使用同一行代码;在任何您想使用变量 x.

的函数中
function push_Callback(hObject, eventdata, handles)
global X;
out = X + 12;
set(handles.ans,'String',out)

在任何函数中对该 X 的值的任何更改对于将其声明为全局的所有函数都是可见的。

为避免使用全局变量,您可以使用图 window 的用户数据 属性(假设 uiobject 是同一图的子对象)。例如:

function pop_Callback(hObject, eventdata, handles)

% ...

set( ancestor(hObject,'figure'), 'UserData', X )

function push_Callback(hObject, eventdata, handles)

inX = get( ancestor(hObject,'figure'), 'UserData' );
out = inX + 12;
set(handles.ans,'String',out)