How to delete persistent variables in a timer fcn
Ältere Kommentare anzeigen
Hi all,
I am using 3 persistent variables in a timer callback function. If I close the GUI (CloseRequestFcn) I want to delete the variable so that it is reinitialized if I start the programm again.
Actually I tried
clear timer_callback_fcn;
But that doesn't work. Moreover I tried
clear functions
This is working well but it doesn't seem to be the best way. Any ideas to improve?
Thank you!
2 Kommentare
Jan
am 23 Sep. 2013
Please explain "does not work" with any details.
Akzeptierte Antwort
Weitere Antworten (1)
Robert Cumming
am 23 Sep. 2013
if you want to keep your current methodology you need to add a "clear" option to your timer callback function which gets called when the gui closes.
i.e.
function myTimerCallback ( varargin )
persistent myTime
if isempty ( myTime ); myTime = now(); end % initialise
% reset the timer when the function is called with
% myTimerCallback ( 'clear' )
if nargin == 1 && ischar ( varargin{1} )
if strcmp ( varargin{1}, 'clear' )
myTime = [] % or however you want to reset.
return
end
end
% your code goes here
end
The use of persistent variables to store GUI data becomes even more complex if you have more than 1 GUI active at a time..... It is possible, but not easy.
As Jan said it might be easier to store the information in the timer function itself (depends on how you use the callback).
1 Kommentar
Adrian
am 23 Sep. 2013
Kategorien
Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!