How to close a figure made in one function, from a different function

Im making a program that graphs data and several buttons. One button plots graph A and another button plots graph B. When I click the button that graphs plot B I want plot A to close and plot B to open, I added close(ax) to function B but I get an error that the variable ax doesnt exist. How do I define ax in function B so that I can close Plot A before plot B pops up? Thanks!

 採用された回答

Matt J
Matt J 2024 年 3 月 28 日
編集済み: Matt J 2024 年 3 月 28 日

0 投票

How do I define ax in function B so that I can close Plot A
You don't. You create ax in function A (it is obtained from the plotting command that creates the graph), save it somewhere, and pass it to function B when it is needed there.
If this were being done in appdesigner, it would be a routine matter to save ax to a property of the app object, which gets passed around automatically to all the button callbacks in the app.

2 件のコメント

Bradley
Bradley 2024 年 3 月 31 日
Im creating a ui progammatically, and ive been trying to figure out a way to pass this plot from one function to another, would you happen to have an example I could look at? Thanks!
Matt J
Matt J 2024 年 3 月 31 日
編集済み: Matt J 2024 年 3 月 31 日
Hf=createPlot(1:5,rand(1,5));
closePlot(Hf);
function fig=createPlot(x,y)
fig=ancestor(plot(x,y),'figure');
end
function closePlot(fig)
close(fig)
end

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

製品

リリース

R2023b

タグ

質問済み:

2024 年 3 月 28 日

編集済み:

2024 年 3 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by