Get a point from a graph

Hie guys, I have done a GUI to plot a graph. Now i would like to get the calue from the graph. Lets say i plot(x,y). I would like to get the value out, for example when x=4, what is the value of y. I know there is a datacursormode, but it only show me the value in the graph. In this case, i would like to get the value in the command window.
Thanks Ean

 Accepted Answer

You can retrieve the plotted data, for example:
XData=get(get(gca,'children'),'XData');
YData=get(get(gca,'children'),'YData');
Now if you want to know the y value when x=4 just do
YData(XData==4)

6 Comments

Matt Fig
Matt Fig on 15 Feb 2011
Note that the final line may fail. If you get an empty value for that line, use the INTERP1 function instead.
y_4 = interp1(XData,YData,4);
Ean Soo
Ean Soo on 16 Feb 2011
Hie, the children there is it refers to the axes name?
Matt Fig
Matt Fig on 16 Feb 2011
For example:
x = -4:.1:4;
y = x.^2;
plot(x,y)
XData=get(get(gca,'children'),'XData');
YData=get(get(gca,'children'),'YData');
% Get y value for x=3.33 - NOT a data point.
y_3p33 = interp1(XData,YData,3.33,'spline')
Children in that case refers to the Line made by the plot.
Ean Soo
Ean Soo on 16 Feb 2011
Thank You, your code help me a lot.
What if i want to get the value of x when y is zero for example?

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 15 Feb 2011

0 votes

You can use a custom datacursormode callback that includes display() in its code.

1 Comment

Ean Soo
Ean Soo on 16 Feb 2011
Erm, is not suitable for me in this case because i would want to recall a very precise value like 12.22. I still working on how to recall that thing. Is just didnt work..

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots 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!