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?

 채택된 답변

Chad Greene
Chad Greene 2015년 11월 17일

6 개 추천

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

댓글 수: 3

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

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Kirby Fears
Kirby Fears 2015년 11월 17일

4 개 추천

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.

카테고리

도움말 센터File Exchange에서 Interpolation에 대해 자세히 알아보기

제품

질문:

2015년 11월 17일

댓글:

Can
2021년 11월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by