How do I close a specific figure
Mostrar comentarios más antiguos
I have a GUI. This GUI runs a simulation the at the end of it I open a figure to display results.
When I re-run the simulation - the old figure is kept open.
How do I close the old figure without closing the GUI?
('close all' close all the windows including the GUI).
1 comentario
babita verma
el 28 de Nov. de 2017
close(gcf)
Respuestas (4)
João Miguel Marinheiro
el 21 de Feb. de 2019
Editada: João Miguel Marinheiro
el 21 de Feb. de 2019
3 votos
close(figure(<number of figure>))
Morteza
el 25 de Feb. de 2013
1 voto
In the section of simulation use these line:
handles.H = figure(2)
plot(rand(10,1));
waitforbuttonpress;
close(handles.H)
when you press any button ploter figure automatically will be closed
Sean de Wolski
el 25 de Feb. de 2013
hFig = figure;
surf(peaks);
To close that figure:
close(hFig)
3 comentarios
Nimrodb
el 25 de Feb. de 2013
Sean de Wolski
el 25 de Feb. de 2013
Then that handle hasn't been stored. You should store that handle in whatever is calling the simulation so that it can close it.
Nimrodb
el 26 de Feb. de 2013
Laercio Barbosa
el 21 de Jun. de 2017
Editada: Laercio Barbosa
el 21 de Mzo. de 2019
I am passing here to let my contribution as I had exactly the same problem. If you know the name or tag of the GUI do:
% Close all figures still openned except the GUI which property 'name' is equal 'nameOfQUI'
figHandles = findobj('type', 'figure', '-not', 'name', 'nameOfGUI');
close(figHandles);
or
% Close all figures still openned except the GUI which property 'tag' is equal 'tagOfQUI'
figHandles = findobj('type', 'figure', '-not', 'tag', 'tagOfGUI');
close(figHandles);
2 comentarios
beginner94
el 16 de Sept. de 2018
@Laercio Barbosa
You only need to fill in ''tag'' and ''tagOfGUI'', right? So if the tag of my GUI is ''figure1'', then:
figHandles = findobj('type', 'figure', '-not', 'figure1', 'figure1');
close(figHandles);
should do it? It doesn't work for me and I am searching for my error...
Laercio Barbosa
el 21 de Mzo. de 2019
No. You don't need fill all the fields you mentioned. Only the last one. Basically what we are doing is:
Find objects of type figure, but not that one where figure property is equal figure1.
or still
Find objects of type figure, but not that one where tag property is equal "tagname".
In your case
figHandles = findobj('type', 'figure', '-not', 'figure', 'figure1');
close(figHandles);
Categorías
Más información sobre Environment and Settings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!