如何在 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)
我有一个包含以下代码的弹出菜单。有两个选项 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)