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

2 views (last 30 days)
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!

Accepted Answer

Matt J
Matt J on 28 Mar 2024
Edited: Matt J on 28 Mar 2024
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 Comments
Bradley
Bradley on 31 Mar 2024
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 on 31 Mar 2024
Edited: Matt J on 31 Mar 2024
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

Sign in to comment.

More Answers (0)

Categories

Find more on Develop uifigure-Based Apps in Help Center and File Exchange

Tags

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!