这是我的指南。
我有两个不同的回调来更改单选按钮值(用于启用和禁用编辑框)和单击按钮。
问题是当我按下按钮时,我想确定选中了哪个单选按钮。我尝试使用下面的代码传递变量(前三个......)
function pbAudio_Callback(hObject, eventdata, handles)
x = getRBValue(rbValue);
if(strcmp(x,'rbRecord'))
myAudio = wavrecord(get(handles.edtSeconds,'String')*11025,11025);
end
wavplay(myAudio)
function pnlAudio_SelectionChangeFcn(hObject, eventdata, handles)
slctdBtn = get(eventdata.NewValue,'tag')
getRBValue(slctdBtn);
switch slctdBtn
case 'rbRecord'
set(handles.edtSeconds,'enable','on');
set(handles.edtPath,'enable','off');
case 'rbImport'
set(handles.edtSeconds,'enable','off');
set(handles.edtPath,'enable','on');
end
function getRBValue(rbValue1)
rbValue = rbValue1;
不幸的是,我收到以下错误。
Undefined function or variable 'rbValue'.
Error in untitled>pbAudio_Callback (line 79)
x = getRBValue(rbValue);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in untitled (line 43)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)untitled('pbAudio_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback
答案 0 :(得分:1)
问题是,你必须将rbValue的值放入你的回调中。为此,您可以使用GUI的句柄结构。我假设您正在使用GUIDE创建gui。
如何做到这一点 - > GUIDE in MATLAB
handles.myVar=123;
%after this dont forget to save it (yes, this is a bit annoying):
guidata(hObject, handles);
稍后,在另一个回调中,例如,您可以在handles-struct中找到这些数据:
handles.myVar
了解更多信息,请查看: