将其他函数中的Variable值传递给另一个Matlab

时间:2013-11-21 14:21:26

标签: matlab matlab-figure matlab-guide

这是我的指南。

enter image description here

我有两个不同的回调来更改单选按钮值(用于启用和禁用编辑框)和单击按钮。

问题是当我按下按钮时,我想确定选中了哪个单选按钮。我尝试使用下面的代码传递变量(前三个......)

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

1 个答案:

答案 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

了解更多信息,请查看:

guidata