MATLAB: How to extract data points from a plot

MATLABpoint

I would like to extract data points from a plot.

Best Answer

You can get the data from a plot by accessing the XData and YData properties from each Line object in the axes.  
1. Make the figure containing the plot the current figure. An easy way to do this is to click the figure to bring it to the foreground. 
2. Call the gca command to get the current axes within that figure. Then pass the axes to the findobj function to search for all lines in the axes. For example, here is a plot containing one line.
figure
plot([1 2])
ax = gca; 
h = findobj(gca,'Type','line');
3. Get the coordinates from the XData and YData properties of the Line object.  
x = h.XData; 
y = h.YData;
If the plot has multiple lines, h is returned as an array of Line objects. Use array indexing to access each Line object in h. Then you can get the XData and YData properties from each Line object.
For example, here’s a plot containing three lines.
figure 
plot([1 2 3; 4 5 6]) 
ax = gca; 
h = findobj(gca,'Type','line'); 
x1 = h(1).XData; 
y1 = h(2).YData; 
x2 = h(2).XData; 
y2 = h(1).YData; 
x3 = h(3).XData; 
y3 = h(3).YData;