Scope of variables passed to function handles?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dehuan
am 16 Dez. 2014
Kommentiert: Dehuan
am 16 Dez. 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 Kommentare
Akzeptierte Antwort
matt dash
am 16 Dez. 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 Kommentare
Adam
am 16 Dez. 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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Whos finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!