Getting a numeric graphics handle for a patch?

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.

 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.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!