我的下拉列表包含了ff。弦:低通,高通,高通,停音。每当我选择低通,下面的错误显示。下面的代码适用于其他代码。
当我选择低通和高通时,我的目标是使edtCutoff2和txtRange不可见,但是下面的代码只适用于高通。
错误:
Error using ==
Matrix dimensions must agree.
Error in untitled>popFreqResp_Callback (line 168)
if ((str == 'Stop Band') | (str == 'Band Pass') == 1)
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in untitled (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in@(hObject,eventdata)untitled('popFreqResp_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating uicontrol Callback代码段
function popFreqResp_Callback(hObject, eventdata, handles)
list=get(handles.popFreqResp,'String');
str=list{get(handles.popFreqResp,'Value')};
if ((str == 'Stop Band') | (str == 'Band Pass') == 1)
set(handles.edtCutoff2,'Visible','on');
set(handles.txtRange,'Visible','on');
else
set(handles.edtCutoff2,'Visible','off');
set(handles.txtRange,'Visible','off');
end发布于 2013-11-21 00:27:12
您不应该使用'==‘来比较字符串,因为如果字符串的长度不一样,它会抛出您看到的错误。本质上,'==‘就是比较两个char类型的矩阵--如果它们没有相同的长度,就没有定义'==’。由于“低通”的长度为8,而“带通”的长度为9,因此不能以这种方式对它们进行比较。
使用strcmp代替。或者strcmpi如果你不关心案子。
https://stackoverflow.com/questions/20109738
复制相似问题