GUIDE question regarding axes

1 view (last 30 days)
Brian
Brian on 19 Nov 2014
Commented: Brian on 25 Nov 2014
Hello, thanks for looking at this,
I'm having trouble keeping track of the current axes in my GUIDE application. What I have is a simple GUIDE application with four axes: when I press on any of the four axes I can use the get(gca) command to find what axes I'm on. My problem comes when I plot anything: whenever I plot anything the gca is never set to whatever I click on anymore. I think it has something to do with clicking on the plot compared to clicking on the axes, hence the current axes handle never changes.
What is strange is if I use the command: get(figure1, 'CurrentAxes') I CAN find the axes I clicked on, but the get(gca) command opens a new figure with a new axes. I have a scroll function callback that uses command:
if get(volprototype, 'CurrentAxes') == handles.axes1
and I can use this to check if the axes does in face correspond to the current axes. My problem is when I execute this code, and do the scroll callback, it exits out if I scroll too quickly. I can scroll slowly and it works perfectly, but if I scroll quickly it creates a error.
So, here are my questions:
Why does it exit out if I scroll too quickly? Is there a better way I can check the current axes? This is causing a few problems for me, and I want to get this scroll function callback working before I continue with the rest of my application.
  2 Comments
Brian
Brian on 19 Nov 2014
Because my windows scroll function has three unique functions for each axes, and while I can not specify any axes and run the scroll callback regardless, I will sometimes get errors because the wrong gca will use the wrong callback.
I use the if statement to verify I'm doing the right thign to the right axes. If this is a dumb way to go about it, I'd love to hear an alternative: I taught myself GUIDE and while I can usually get a few things done well, when I add multiple axes with unique callbacks, etc I find myself getting less and less organized.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 19 Nov 2014
If clicking on an axes changes the gca, then you're fine. Just don't specify the axes handle in any call to plot() and don't call axes() before any call to plot(). Then it will just use the gca by default.
  5 Comments
Brian
Brian on 25 Nov 2014
Thanks for your help! I will look at this link.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by