MATLAB: GUIDE Callbacks using function handles or strings

callbackfunction handleguideMATLAB

Hello,
I'm a quite experienced GUI programmer and usually program GUIs manually without using GUIDE. However, now I struggle with a GUI which was developped by someone else using GUIDE.
I would like to define a callback function for a GUI element of the GUIDE GUI mygui.m/mygui.fig without using the standard GUIDE callback which is defined in mygui.m. Currently, the callback function defined in mygui.m just calls another function which is saved in a seperate file cb.m because it is quite long. To improve maintenance of the software, I would find it much clearer if I could directly define the callback function to be cb.m whithout having to go via a subfunction of mygui.m.
It tried to change the callback property in GUIDE like
cb(hObject,eventdata)
@(hObject,eventdata) cb(hObject,eventdata)
but I could not get it running. Now I wonder if it is at all possible to avoid the "normal" GUIDE callback in mygui.m? If there is another possibiliy – how to do it?
I'm using MATLAB R2010b.

Best Answer

By now, I found that defining the callback property in GUIDE to be
cb(gco)
works. The variable hObject seems not to be known when I define callback functions myself although hObject seems to be known for callback functions generated by GUIDE itself.
With this solution I don't even need the second argument which callback functions usually must have.