MATLAB Answers

The Axes Tag keeps on deleting....

6 views (last 30 days)
Nimrodb
Nimrodb on 19 Feb 2013
Every time I open the project - the Axes Tag is empty. That causes the background picture I it to not appear.
Any idea?

  0 Comments

Sign in to comment.

Answers (2)

Jan
Jan on 20 Feb 2013
Edited: Jan on 20 Feb 2013
As reply to your comment to Image Analysts answer:
You can fix this by the shown method to set 'NextPlot' to 'add':
h = axes('tag', 'theTag', 'NextPlot', 'add');
Then new object added by so called high-level graphic routines do not clear formerly created objects and do not reset some properties of the parent object anymore. I create all AXES objects with this property and whenever I want an already existing object to be deleted, I do this explicitly. The less I let Matlab guess what I want, the less chances Matlab has to make mistakes.
I follow the same principle for low-level functions also: The high-level function plot() creates a line object. calling line directly is faster, has less side-effects, but it is less convenient e.g. for setting markers. But even then specifying the axes handle as 'Parent' property has advantages instead of relying, that the wanted axes is the current object: When a TIMER callback activates another axes, the results look very confusing.

  7 Comments

Show 4 older comments
Image Analyst
Image Analyst on 20 Feb 2013
I'd call the Mathworks about it. I repeatedly open fig files in GUIDE and I never have properties of controls mysteriously vanish. If it were me, I'd call them.
Nimrodb
Nimrodb on 24 Feb 2013
IA: I did - no answer :/
But thanks.
As long as I do not turn on the GUIDE - all is good. The problem happens when I turn the GUIDE on - then the Tag is gone.
Image Analyst
Image Analyst on 24 Feb 2013
It should answer - they have an automated/computerized phone answering system. Try calling them during normal business hours.

Sign in to comment.


Image Analyst
Image Analyst on 19 Feb 2013
How are you opening "the project"? In GUIDE? And then you double click on an axes to bring up the property inspector and the tag property is empty? That seems weird or impossible.

  6 Comments

Show 3 older comments
Jan
Jan on 20 Feb 2013
@Image Analyst: I'm not sure if I understand you. I meant:
h = axes('tag', 'theTag');
plot(1:10);
get(h, 'tag') % >> ''
delete(h);
h = axes('tag', 'theTag', 'NextPlot', 'add'); % Or: hold on
plot(1:10);
get(h, 'tag') % >> 'theTag'
But if the handle is stored in the handles struct, it is still valid. The same happens for other high-level functions. And I agree that this is a strange behavior: Why should adding a graphic object remove the tag automatically? The tag is a property of the axes object, and should not depend on its children.
Nimrodb
Nimrodb on 20 Feb 2013
Guys, it looks like you also encountered my problem.
Jan, I'm not sure if you saw this behavior or not (not sure what this code is for) - but your questions are valid and that is the question for the answer I'm looking for - Why should this happen? End more - how to fix this?
Image Analyst
Image Analyst on 20 Feb 2013
You could probably fix it using GUIDE. I use GUIDE and that never happens to me.

Sign in to comment.


Translated by