matlab guide未定义与 'matlab.ui.control.UIControl' 类型的输入参数相对应的函数

事情是这样的:

使用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

再运行就不会报错了,真想知道具体原因啊!

posted @ 2017-06-19 11:22  ssh_alitheia  阅读(837)  评论(0编辑  收藏  举报