clear persistent variable in subfunctions

19 visualizzazioni (ultimi 30 giorni)
Torsten Reh
Torsten Reh il 1 Dic 2021
Risposto: Monika Jaskolka il 1 Dic 2021
Hi,
i have a script which repeadetly calls a subfunction. In that subfunction i have a persistent variable that grows by 1 everytime its called.
after im done i want to reset the persistent variable inside the subfunction.
fun1
fun1
fun1
clear fun1
fun1
function fun1
persistent a
if isempty(a); a = 0; end
a = a+1
end
the output should be: 1-2-3-1
but it is 1-2-3-4, and when i run the script again it is 5-6-7-8.
I do NOT want to use:
clear all
clear functions
I just want to clear the persistent varibale inside that specific funtion.
I reckon i could pass a flag into fun1 to initialize it, but i believe there must be a better way to do this.

Risposte (1)

Monika Jaskolka
Monika Jaskolka il 1 Dic 2021
"MATLAB clears persistent variables when you clear or modify a function that is in memory. "
So it doesn't seem like there is a way to do what you are asking for.

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by