MATLAB: How to get current lineseries handle

lineseriesplot

if i plot something with h=plot(…) I get a handle to the lineseries, but if I get a plot from somewhere else where I cant get the handle directly is there a way like gcf or gca to get the lineseries handle?

Best Answer

The lineseries will (generally) be a child of the axes. So if you have a have a handle to the axes (or using gca, if it is the current axes), you can query its Children property:
>> a = axes;
>> h1 = plot(1:10);
>> h2 = get(a, 'Children');
>> h1 == h2
ans =
1
If you have a very complicated scene (perhaps there are multiple axes involved or maybe hggroups and hgtransforms), it may be easier to use the findobj command:
>> h1 = plot(1:10);
>> h2 = findobj('Type', 'line');
>> h1 == h2
ans =
1