Close command and Invalid figure handle
27 ビュー (過去 30 日間)
古いコメントを表示
I have a GUI in which I have a button create a plot: p(1)=plot(...).
I have a reset button that, upon being pressed, executes close(p).
When I hit the reset button, I get the error:
??? Error using ==> close at 94
Invalid figure handle.
Error in ==> Pulse>reset_Callback at 870
close(p)
However, while the GUI and p(1) plot figure are open, if I type close(p) in the Matlab Command Window, it closes the figure without any errors. Any idea what's causing this?
0 件のコメント
採用された回答
その他の回答 (3 件)
Titus Edelhofer
2013 年 1 月 29 日
Hi Jared,
you need to close the figure, not the plot. Did you write the GUI using GUIDE? In this case you could write
close(handles.figure1)
assuming you did not assign another tag to the figure ...
Slightly less "nice": just close the figure by
close(gcbf);
where gcbf stands for "get callback figure".
Titus
2 件のコメント
Titus Edelhofer
2013 年 1 月 30 日
Hi Jared,
close(p) should work. If they are all figures, all figures should close. There is a problem of course if at least one entry of p is not a figure (because it has been closed e.g. by the user). What you can do is test this during the call by writing close(p(ishghandle(p)))
Titus
Azzi Abdelmalek
2013 年 1 月 28 日
Maybe you are trying to close a figure that is already closed. Use
close(p(1))
3 件のコメント
Azzi Abdelmalek
2013 年 1 月 29 日
It does not work from command window. Check this
p(1)=figure
p(2)=figure
close(p(1)) % will close figure1
close(p) % error
Azzi Abdelmalek
2013 年 1 月 29 日
How p is stored? when you close a figure, you have to update p:
p=handles.p
close(p(2))
p(2)=[]
handles.p=p
Shashank Prasanna
2013 年 1 月 29 日
I don't recommend this at all, but depending on your use-case they may be useful with modifications:
close(findobj('type','figure'))
Closes every figure. Also as Titus mentioned, there is no such thing as a plot object, there are figures, axes, line objects and so on. Plot returns column vector of handles to lineseries objects.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Graphics Object Properties についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!