我有一个弹出菜单,其中包含以下代码。 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)
但是,我在set和get函数中有一些错误,因此我遇到了麻烦。请帮忙。
要避免使用全局变量,可以使用图形窗口的UserData属性(假设uiobjects是同一图形的子对象)。例如:
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)
可能是你可以尝试全局变量
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的任何值的更改对于将其声明为全局的所有函数都是可见的。