Scope of variables passed to function handles?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Dehuan
el 16 de Dic. de 2014
Comentada: Dehuan
el 16 de Dic. de 2014
Hi, everyone,
I want to ask about the non-input variables in function handles.
For example, following code returns h(1)=2.
b=1;
h=@(a)a+b;
clear b;
display(sprintf('h(1)=%d', h(1)));
Is this kind of usage safe and correct?
Dehuan
0 comentarios
Respuesta aceptada
matt dash
el 16 de Dic. de 2014
As far as i know, yes this is safe and correct. Any non-input variables pass their values to the function at the time the function handle was created. Subsequent changes to or clearing of those variables has no effect on the function.
2 comentarios
Adam
el 16 de Dic. de 2014
Yes, this is correct. It is also why passing the handles structure, for example, in a GUIDE-based file to a callback is not a good idea, because a copy of the structure at the exact time the callback is set is hard-coded into the callback, irrespective of when it is called.
Más respuestas (0)
Ver también
Categorías
Más información sobre Whos 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!