clear a MATLAB function after an episode

4 views (last 30 days)
There is a persistent variable in a function and I need to clear it before every episode of deep RL training. How do I achieve this?
The path of the function is
[mdl "/Check if Done/MATLAB Function"]
Thanks

Answers (1)

Julius Muschaweck
Julius Muschaweck on 8 Apr 2021
Edited: Julius Muschaweck on 8 Apr 2021
Assuming your function has the name f, you can use clear f; to clear persistent variables within f.
Like here:
function f()
persistent p
if isempty(p)
p = 42;
fprintf('p was empty, now p == %g\n',p)
else
p = p+1;
fprintf('p == %g\n',p);
end
end
If you then execute
f();
f();
f();
clear f;
f();
f();
you will get
p was empty, now p == 42
p == 43
p == 44
p was empty, now p == 42
p == 43

Products

Community Treasure Hunt

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

Start Hunting!