clear persistent variable in subfunctions

8 views (last 30 days)
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.

Answers (1)

Monika Jaskolka
Monika Jaskolka on 1 Dec 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.

Community Treasure Hunt

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

Start Hunting!