MATLAB Answers

0

Getting a numeric graphics handle for a patch?

Asked by alan cheville on 14 Sep 2017
Latest activity Commented on by alan cheville on 15 Sep 2017
I need to get a numeric handle to a patch object in R2017A. Both get(gca,'Children') and findobj return a struct with all the graphic object properties except the handle. A post referring to R2014 mentions I can get this using the 'Number' property, but this doesn't seem to exist anymore. Here is the link to the article: https://www.mathworks.com/help/matlab/graphics_transition/graphics-handles-are-now-objects-not-doubles.html#budq3uo-1
This seems like it should be simple but I am stuck!
Thanks, Alan

  2 Comments

Why do you need the numeric handle?
I need to create a unique numeric identifier for a graphics object.

Sign in to comment.

1 Answer

Answer by Walter Roberson
on 14 Sep 2017
 Accepted Answer

double() the handle. You can handle() the result to get back the object.
Note: the Number property applies only for figures.
>> aaa = patch(nan,nan,nan)
aaa =
Patch with properties:
FaceColor: 'flat'
FaceAlpha: 1
EdgeColor: [0 0 0]
LineStyle: '-'
Faces: 1
Vertices: [NaN NaN]
Show all properties
>> double(aaa)
ans =
0.0001220703125
>> handle(ans)
ans =
Patch with properties:
FaceColor: 'flat'
FaceAlpha: 1
EdgeColor: [0 0 0]
LineStyle: '-'
Faces: 1
Vertices: [NaN NaN]
Show all properties

  1 Comment

Brilliant, that worked well. Thanks for the fast response.

Sign in to comment.