Apply hold on to multiple figures in a loop

54 views (last 30 days)
Hi,
I'm currently using a script creating a figure and using "hold on".
Then inside a for loop i'm adding a lot of curves to this figure and I have a "hold off" after the loop.
This is working fine, but right now I would like to reproduce the same thing and having 4 different figures (and not having to copy 4 times the same for loop...). So for example at the beginning of the script I create my 4 figures
a = figure(1)
b = figure(2)
c = figure(3)
d = figure(4)
Then I have my for loop to add at each loop a curve inside of the figure a, b, c or d depending on some condition.
But the problem is it's working fine with one figure but with multiple figures I can't figure out (haha) how to apply the "hold on" to each figure during the loop?
I didn't find a solution online, do someone know how to hold multiple figures at the same time?
Thanks

Accepted Answer

Stephen23
Stephen23 on 29 Aug 2019
Edited: Stephen23 on 29 Aug 2019
"how to apply the "hold on" to each figure"
The properties affected by hold are all axes properties, which have nothing to do with figures. When you read the hold documentation it optionally allows an axes handle to be specified (not a figure handle, which hold has nothing to do with).
It is trivial to use a loop and indexing to access graphics handles, e.g.:
for k = 1:4
fh(k) = figure(k);
ax(k) = axes('parent',fh(k));
...
hold(ax(k),'on')
...
end
  1 Comment
mael thevenot
mael thevenot on 29 Aug 2019
It worked perfectly, thank you very much! :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!