Currently, if you have many figures open at once, but decide you only want to keep one or two of them, you have to manually close all the other figures. This function is a simple tool for keeping the figures you want and closing all the others. Also, called with no arguments, 'cab' is a convenient, three-letter replacement for 'close all'.
It works smoothly! I was coding it but then I found this. You saved me 30 minutes :)
Very nice !! Thanks
Great! Just what I was looking for!
Excellent code! Thanks
Thanks for the improvement, Thierry! The 'cellfun(@fcn, ...)' method, though elegant, unfortunately doesn't work on Matlab 6.x (which some of us still have to use. Sigh.)
Very handy indeed. And nice tweak, Thierry
I prefer to use 0 for gcf or 'last' option.
I've modified the function like this:
% CAB close all but
% This function closes all figures currently open EXCEPT for
% those listed as arguments. 'cab' stands for 'close all but'.
% CAB figure_handle1 figure_handle2 ... (command line syntax)
% CAB(figure_handle1, figure_handle2, ...)
% Use 0 for gcf. CAB 0 closes all figures except current one.
% CAB : same as close all
% all_figs = findall(0, 'type', 'figure'); % Uncomment this to include ALL windows, including those with hidden handles (e.g. GUIs)
all_figs = findobj(0, 'type', 'figure');
if iscellstr(varargin) % command line syntax
A fantastic short code to save time ! Thanks for this submission!
I love it. Not sure how I got along for 15 years without it! One small note - the "last" syntax actually keeps the current figure open, which wasn't necessarily the last one created. I love this behavior so much, that I tweaked CAB to do this with no input arguments, too.
Thanks for a simple, elegant, and very useful function.
Cool things. I love it. It is really useful to me as i work with a lot of figures open.
Fixed 'last' option so it actually closes the last figure opened, rather than the current figure.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.