Getting data values from a plot

Hi Guys,
I want to get (x,y) values from a plot. Say my plot is made of the following points (1,1) (2,3) (4,4) and (5,9). Is there anyway to get the value of y on this plot when x=2.5.
Thanks NS

 Akzeptierte Antwort

Nathan Greco
Nathan Greco am 8 Jul. 2011

0 Stimmen

User interpolation
x = [1 2 4 5];
y = [1 3 4 9];
xi = x(1):.01:x(end); %values between x
yi = interp1(x,y,xi);
findyatx = 2.5;
yfound = yi(abs(xi-findyatx)<eps);

3 Kommentare

NS
NS am 8 Jul. 2011
Thanks Nathan.
Is this interpolation valid only for integer X and Y values. What about the case of non integer values of x. I am getting the following error.
"??? Error using ==> interp1 at 261
The values of X should be distinct."
Sean de Wolski
Sean de Wolski am 8 Jul. 2011
Distinct means no duplicates. Take the mean of any duplicate values. (unique and accumarray will be your friends)
NS
NS am 8 Jul. 2011
Works really well. Thanks Nathan

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sean de Wolski
Sean de Wolski am 8 Jul. 2011

0 Stimmen

You mean fit a line to it and solve?
Sure, use polyfit and polyval.
doc polyfit
doc polyval

3 Kommentare

NS
NS am 8 Jul. 2011
Thanks. It works ok. Is there any way to get the best degree for the polynomial automatically. I need to do this for a plot of plots and the curve fitting maybe different for each.
Sean de Wolski
Sean de Wolski am 8 Jul. 2011
"Best" is a word you could write a PhD thesis on.
NS
NS am 8 Jul. 2011
Hehehehhe....Ok..

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Exploration finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by