MATLAB: What Does Each Element of This Syntax Mean

callbackguide

I create a push button in GUIDE. When I create a callback function for it, it automatically creates the syntax below:
Could you please explain what each element of this syntax mean?

Best Answer

  1. @() means the creation of an anonymous function.
  2. @(hObject, eventdata) is an anoynmous function with 2 inputs.
  3. The body of this anonymous function is
PushButton('pushbutton1_Callback', hObject, eventdata, guidata(hObject))
  1. (Dull formatting in th forum, this is 4.!) This means, that the function "PushButton" is called with the 2 inputs of the anonymous function and as 3rd input the current value of the handles struct is obatined from the figure.
To reduce the levels of indirection and for simplicity this might be a valid callback also:
@pushbutton1_Callback
with this definition of the function:
function pushbutton1_Callback(hObject, eventdata)
handles = guidata(hObject);
...
Related Question