事情是这样的:
使用matlab的guide进行界面开发的时候,先拖了一个控件到窗口,然后写它的回调函数,后来发现这个控件的Tag名取的不合理,就将其改动了,比如从原来的”slider2”改为了”slider_height”,然后保存运行,matlab就报错了,错误类似下面:
错误使用 feval
未定义与 'matlab.ui.control.UIControl' 类型的输入参数相对应的函数
'slider2_CreateFcn'。
出错 gui_mainfcn (line 95)
feval(varargin{:});
出错 altimeterProcess (line 42)
gui_mainfcn(gui_State, varargin{:});
这个时候已经有新的slider_height_CreateFcn
以及slider_height_Callback
函数,但是为什么matlab还要求slider2_CreateFcn
函数的存在呢?slider2按道理不是应该消失了吗?
具体原因我不知道,但是从关于gui中控件删除的疑问中可以看到,忽略这个错误不会对程序运行有什么影响,只是每次都有那个“叮叮叮”的声音。如果要让matlab不报错,就把它提示没有定义的函数的定义给出来。以上面的为例,把slider2_CreateFcn
的定义给出来,具体做法是,找一个相同控件的CreateFcn
函数复制过来将它的名字改为slider2_CreateFcn
即可:
% --- Executes during object creation, after setting all properties.
function slider2_CreateFcn(hObject, eventdata, handles)
% hObject handle to slider_point (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9 .9 .9]);
end
再运行就不会报错了,真想知道具体原因啊!