Interpolate Data and find the matching x-Value

17 views (last 30 days)
I have got an arry with 151937x2 double wicht discribes a Curve.
I am trying to find the x-Value to the matching y- Value for example:
data=[1 2,
2 3,
3 3,
4 5,
7 9]
I have tryed it with:
interp1(data(:,1), data(:,2),y-Value ,'PCHIP')
But the function returns the according y-Value, logically. So I tryed to swap x and y datas. The Problem is that the y-Values arent unique.
I hope someone can help me.

Accepted Answer

Star Strider
Star Strider on 22 Jan 2020
Try this:
data=[1 2,
2 3,
3 3,
4 5,
7 9];
xval = @(yval) fsolve(@(x) interp1(data(:,1), data(:,2), x, 'linear') - yval, median(data(:,1)));
that with these calls to it:
Out3 = xval(3)
Out6 = xval(6)
Out8 = xval(8)
produces:
Out3 =
3.0000
Out6 =
4.7500
Out8 =
6.2500
  4 Comments
Gabriel Bischof
Gabriel Bischof on 22 Jan 2020
I understand. Thank you a lot, this was a great help.

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!