How to detect if a figure exist?
Show older comments
To save the figure if one exists with:
saveas(gcf,figname);
the problem is that if no figure exists, it'll create a figure. How to detect if a figure exist before using above saveas command to avoid the creation of an empty figure?
Thanks.
Accepted Answer
More Answers (1)
The most reliable solution is to move your programming up a notch: use explicit handles and keep track of them.
While gcf and gca are fine for the command-line and playing with scripts, when you want to write more advanced functions then:
- do not use gcf, gca.
- store the handle of every axes, figure, and other relevant objects.
- explicitly specify the parent of every object when it is created, plotted, etc.
ishghandle(stored_handle)
2 Comments
Stanislav Ginzburg
on 13 Nov 2022
Sometimes you may get handle on empty object plot([1,2], [NaN, NaN]); Result of ishghandle is true, Groot return handler of figure. And not empty too. The good practice is to prevent save empty objects.
Stephen23
on 13 Nov 2022
"The good practice is to prevent save empty objects."
No, empty plots may also be information: it may be a perfectly valid and important result that for some figure nothing is plotted. This depends entirely on the specific situation and thus is the responsibility of the user to check.
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!