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

 採用された回答

Ameer Hamza
Ameer Hamza 2020 年 10 月 14 日

10 投票

Run this
all_fig = findall(0, 'type', 'figure');
close(all_fig)

6 件のコメント

bo peng
bo peng 2020 年 10 月 14 日
thank you for your reply, your answer is correct,but I think Adam Danz's answer is I want.
Uzi Yona
Uzi Yona 2021 年 10 月 11 日
Thanks a lot. This work very good.
bo peng
bo peng 2022 年 4 月 19 日
your answer is so great !!!
Edward B
Edward B 2022 年 9 月 5 日
That is the most concise and elegant two-liner since:
Take my wife.
Please.
Yang Liu
Yang Liu 2023 年 11 月 10 日
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 2024 年 4 月 4 日
0 is the graphics root object, which is also returned by the groot function, so you could do findall(groot,_)

サインインしてコメントする。

その他の回答 (2 件)

Adam Danz
Adam Danz 2020 年 10 月 14 日
編集済み: Adam Danz 2020 年 10 月 14 日

4 投票

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 件のコメント

bo peng
bo peng 2020 年 10 月 14 日
your answer is so great
I2M
I2M 2021 年 1 月 4 日
Yes very nice answer because when you move from guide to app it is not easy to uderstand that
Jan Kudlacek
Jan Kudlacek 2021 年 12 月 29 日
編集済み: Jan Kudlacek 2021 年 12 月 29 日
In Matlab 2019b HandleVisibility is 'off' and is read only. Is there any workaround?
Adam Danz
Adam Danz 2021 年 12 月 29 日
@Jan Kudlacek, you can use Ameer Hamza's solution below.
Yang Liu
Yang Liu 2023 年 11 月 10 日
I don't konw why but this doesn't work for me... weird...

サインインしてコメントする。

Bjorn Gustavsson
Bjorn Gustavsson 2020 年 10 月 14 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeEnvironment and Settings についてさらに検索

製品

質問済み:

2020 年 10 月 14 日

コメント済み:

2024 年 4 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by