MATLAB: Where are all drawn shapes stored from an axis

app designergraphicsgraphics arrayhandlesshapes

Let's say that I have an axis and I draw three shapes on it using drawrectangle.
Is there some way to call an array that holds the handles to each of these shapes?
Thanks

Best Answer

Store handles
In the block below, r1, r2, & r3 are handles to the 3 rectangles.
figure()
r1 = rectangle('Position',[0 0 2 4],'Curvature',0.2);
hold on
axis equal
r2 = rectangle('Position',[3 0 2 4],'Curvature',1);
r3 = rectangle('Position',[6 0 2 4],'Curvature',[0.5,1]);
Retrieve handles if they aren't stored
The line below search for objects of type "rectangle" in the current axes. For the plot created above, r would be a vector of object handles of size [3x1].
r = findobj(gca, 'Type', 'rectangle');