clear persistent variable in subfunctions

8 ビュー (過去 30 日間)
Torsten Reh
Torsten Reh 2021 年 12 月 1 日
回答済み: Monika Jaskolka 2021 年 12 月 1 日
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.

回答 (1 件)

Monika Jaskolka
Monika Jaskolka 2021 年 12 月 1 日
"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!

Translated by