How to close mutiple uifigure using command

I run fig = uifigure many time in Matlab,so I genetared lots of uifigure ,I want to close all uifigure with one line of command.Do you know what command I should enter in Matlab.Thank you very much

 Réponse acceptée

Ameer Hamza
Ameer Hamza le 14 Oct 2020
Run this
all_fig = findall(0, 'type', 'figure');
close(all_fig)

6 commentaires

bo peng
bo peng le 14 Oct 2020
thank you for your reply, your answer is correct,but I think Adam Danz's answer is I want.
Uzi Yona
Uzi Yona le 11 Oct 2021
Thanks a lot. This work very good.
bo peng
bo peng le 19 Avr 2022
your answer is so great !!!
Edward B
Edward B le 5 Sep 2022
That is the most concise and elegant two-liner since:
Take my wife.
Please.
Yang Liu
Yang Liu le 10 Nov 2023
Thank you, but don't take my wife. Your codes works for me, just a quick question:
What does the 0 represent? I try to figure out with help findall, and find nothing helpful...
Thanks, and take my wife now.
Voss
Voss le 4 Avr 2024
0 is the graphics root object, which is also returned by the groot function, so you could do findall(groot,_)

Connectez-vous pour commenter.

Plus de réponses (2)

Adam Danz
Adam Danz le 14 Oct 2020
Modifié(e) : Adam Danz le 14 Oct 2020
Just to add another approach,
Set HandleVisibility to on when you create the UIFigures. That way their handles will be visible to gcf() , close all, etc....
uifigure('HandleVisibility', 'on')

5 commentaires

bo peng
bo peng le 14 Oct 2020
your answer is so great
I2M
I2M le 4 Jan 2021
Yes very nice answer because when you move from guide to app it is not easy to uderstand that
Jan Kudlacek
Jan Kudlacek le 29 Déc 2021
Modifié(e) : Jan Kudlacek le 29 Déc 2021
In Matlab 2019b HandleVisibility is 'off' and is read only. Is there any workaround?
Adam Danz
Adam Danz le 29 Déc 2021
@Jan Kudlacek, you can use Ameer Hamza's solution below.
Yang Liu
Yang Liu le 10 Nov 2023
I don't konw why but this doesn't work for me... weird...

Connectez-vous pour commenter.

If you want to keep some figures you can close a subset of them if you keep the figure-handles in an array. If you modify your creation to something like this for all call to uifigure:
if ~exist('uifig')
uifig = uifigure;
else
uifig(end+1) = uifigure;
end
if ~exist('uifig')
uifig = uifigure;
else
uifig(end+1) = uifigure;
end
% ...etc
% then you can close some suitable set of them, or all of them
% closing all:
close([uifig]),clear uifig
% closing some:
close([uifig([1 3])]),uifig([1 3]) = [];
HTH

Catégories

En savoir plus sur Environment and Settings dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by