Assume I have a vector of data y(nx1) which correspond to a time vector t(nx1).
What I need is some way to find a certain value of y for an arbitrary point of time. Lets say t covers a timespan of 0 to 10 seconds. I want to get the corresponding value of y for t=2.334.
Now if there is a t=2.334 exactly in the time vector I could find the corresponding entry in y. But if one entry reads t=2.1 and the next t=2.5 I don't have a corresponding value.
I would like to interpolate y so that I can find a value for any given time.
However I am fairly new to Matlab. Could someone tell me how to do this the best way?

 Réponse acceptée

Chad Greene
Chad Greene le 17 Nov 2015

6 votes

Use interp1. It's exactly what you need
yi = interp1(t,y,2.2334);

3 commentaires

Jan Wingens
Jan Wingens le 18 Nov 2015
Thank you very much
Shubham Wakchaure
Shubham Wakchaure le 11 Mai 2021
@Chad Greene How to do it for the 3d case ?
Can
Can le 25 Nov 2021
@Shubham Wakchaure With interp3 of course.

Connectez-vous pour commenter.

Plus de réponses (1)

Kirby Fears
Kirby Fears le 17 Nov 2015

4 votes

Check out the interp1 function as well as the spline function.
For your example, you can find the value for t=2.334 given t and y using linear interpolation with interp1:
myval = interp1(t,y,2.334);
Hope this helps.

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by