Help understand: Passing a function handle to another function as an argument
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
KAE
el 9 de Jun. de 2017
Comentada: KAE
el 13 de Jun. de 2017
set(S.fh,'windowbuttonmotionfcn',{@fh_wbmfcn,S})
I know @ is a handle to a separately defined function called fh_wbmfcn, but am puzzled about what the {} brackets are doing. Are they passing in S as an input to fh_wbmfcn? I have never seen this syntax before and it is hard to search the documentation for characters like @ or {}.
0 comentarios
Respuesta aceptada
Walter Roberson
el 9 de Jun. de 2017
Remember that every graphics callback is automatically passed two initial arguments: the source and the event data. Using the cell array {@fh_wbmfcn,S} has the same effect as if you had specified @(src,event) fh_wbmfcn(src, event, S)
3 comentarios
Walter Roberson
el 9 de Jun. de 2017
"Is it possible to pass the output arguments of fh_wbmfcn which are Cx, Cy to the workplace of function that calls it"
Sorry, no, callbacks are never invoked with output assigned. Callbacks are executed as if called from the base workspace, because they are invoked asynchronously. Functions do not call callbacks (but functions might define callbacks.)
Más respuestas (0)
Ver también
Categorías
Más información sobre Interactive Control and Callbacks en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!