Interpolate between specific values in a data set

I am having trouble trying to figure out how to interpolate between specific y values for 2 given x values from excel.
For example in excel:
X Y
1 0.2
2.2 0.35
3 0.4
4 0.5
then given an X value of 3.5 from a matlab output I would like to find the corresponding Y value, in this case it would be 0.45. Then store that and use that in the future. I am not sure how to search for where 3.5 would sit within the X column and then find the surrounding values to do the interpolation.

 Respuesta aceptada

the cyclist
the cyclist el 8 de Mayo de 2022
Editada: the cyclist el 8 de Mayo de 2022
You can use the interp1 function to do interpolation.
x = [1, 2.2, 3, 4];
y = [0.2, 0.35, 0.4, 0.5];
x0 = 3.5;
y0 = interp1(x,y,x0)
y0 = 0.4500

4 comentarios

oh okay thanks, didn't realise it was as simple as that. I implemented it into the code but the values seem to be slightly off incomparison to my hand calculated values which I have double checked are right, I am guessing this is just since interp1 does it a little different?
Torsten
Torsten el 8 de Mayo de 2022
Editada: Torsten el 8 de Mayo de 2022
0.45 = 0.4 + (0.5-0.4)/(4-3) * (4-3.5)
Linear interpolation between (3/0.4) and (4/0.5).
What's your method ?
Yea its the one you just put. I am comparing my answers to someone elses interpolations so maybe they just rounded earlier and made it slightly different.
@Reece Smith, if you can upload an example of the data and code that give a different result from what you expect, we could try to help you understand the difference.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Interpolation en Centro de ayuda y File Exchange.

Productos

Versión

R2020b

Preguntada:

el 8 de Mayo de 2022

Comentada:

el 8 de Mayo de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by