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?

 Akzeptierte Antwort

Chad Greene
Chad Greene am 17 Nov. 2015

6 Stimmen

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

3 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Kirby Fears
Kirby Fears am 17 Nov. 2015

4 Stimmen

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.

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 17 Nov. 2015

Kommentiert:

Can
am 25 Nov. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by