Can figure numbers be re-assigned?
Show older comments
Is it possible to re-assign a figure number , for example if I have a Figure 55 open, can I make it Figure 2 as long as I don't already have a Figure 2 open? If so how do I do this?
I have a routine that generates 60+ figures, and I delete all but 3 interesting ones. I would like to make them Figures 1,2,3 because I need to re-run the routine and generate another set of figures, and I'd like the first set to appear together in the figure order (it makes them easier to keep track of).
1 Comment
Accepted Answer
More Answers (2)
Joseph Cheng
on 9 Jun 2014
Edited: Joseph Cheng
on 9 Jun 2014
This maybe a bit hard to implemented based on how you're selecting the 3 interesting ones but the function copyobj() will do the trick.
x = randi(10,1,5);
h1 = figure(1),plot(x);
figure(100);
h2 = gcf;
copyobj(allchild(h1),h2);
Here i create a random plot in figure 1. and then using gcf i get figure 100 and copy figure 1 to figure 100.
The only reliable way that I have found, one which avoids copyobj and keeps all the figure formatting, is to save all open figures to a temporary .fig file and then reload i. The reloaded figures will always be numbered sequentially starting at the first available fig number.
H=findobj(groot,'Type','figure'); %Get all open figures
tn=tempname('.')+".fig"; %generate temporary name
savefig(H,tn)
close all
openfig(tn); delete(tn);
1 Comment
Pedro
on 12 Oct 2025
Excellent! Thank you!
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!