MATLAB Answers

Shusen
0

Axes Handle Object not avaliable in GUI

Asked by Shusen
on 9 Oct 2011
Hi. I have taken some previous guy's work and continue developing. He was plotting into axes1 in a GUI without specifying which axes is the target, and it works. When I try to add "axes(handles.axes1)" before the plotting action I am getting error "Invalid object handle". When I check the value of handles.axes1 it does have a value. What could be the possible error here? How can I resolve it.

  0 Comments

Sign in to comment.

2 Answers

Answer by Jan
on 9 Oct 2011

You cann search for "axes1" in the M-files. It should be defined anywhere. Either the author forgot to store the value and a GUIDATA must be inserted. Or the definition of axes1 is missing completely.
More precise suggestions are impossible without seeing the code.

  2 Comments

OK, I think most of the time I am creating the GUI using guide. So I don't know the mechanism inside to create a graphic object handle. Everytime I insert a component the .m file will be updated.
For the current problem I searched the .m file and found no definition. Do you know how to add an axes object handle manually?
Forgot to say thank you.

Sign in to comment.


Answer by Walter Roberson
on 9 Oct 2011

If you were to check
ishandle(handles.axes1)
you would find that it says 0 (false).
Graphics handles are represented by numeric values, but when the graphics object is deleted, the numeric value is not somehow automatically cleared. The code is attempting to use an axes that no longer exists.

  1 Comment

Thank you for pointing out this!
Yes, you are right even the value exist it is not a handle(even it is called handles.axes1). My problem is when I open the GUI, I can make plots on the exes area without setting a handle to it. So I see the plots. However, when I want to add another axes and control which one is currently active, I am having trouble. Do you know how to add a handles for the axes object after it is on the GUI?

Sign in to comment.