interp1 for matrix

53 次查看(过去 30 天)
Heidi Hirsh
Heidi Hirsh 2019-8-24
I have two velocity matrices that I want to interpolate onto a new time vector. The matrices are both 8011x60 doubles where the rows are different times and the columns are depths. Can I use interp 1 to interpolate each row onto the new time?
This is how I have it set up now (how I would use interp1 if U and V were vectors):
I took a screenshot of my workspace too if that helps.
U_new = interp1(Date,U,M1time);
V_new = interp1(Date,V,M1time);
Temp_new = interp1(Date,Temp,M1time);
  2 个评论
dpb
dpb 2019-8-24
Did you not try it? There's an example in the documentation precisely the usage to interpolate arrays by column to a common set of query points...
Heidi Hirsh
Heidi Hirsh 2019-8-25
Hi! Thank you for pointing out the size discrepancies. I realized I had somehow reloaded an old velocity file (that was two timestamps short). Once I fixed that, interp1 worked fine the way I had written it. I apologize for appearing so idiotic. Thank you for your help :)

请先登录,再进行评论。

采纳的回答

darova
darova 2019-8-24
You have to make the same number of rows for Date and U
U_new = interp1(Date,U,M1time);
% size(Date): 8013x1
% size(U): 8011x60
Didn't you get an error about size match?
  1 个评论
Heidi Hirsh
Heidi Hirsh 2019-8-25
I fixed the size issue and it ran fine. I somehow reloaded the wrong data file (2 velocity vectors shorter than time).

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2019-8-24
No you should use interp2 for this. The value to look up depends on two factors, depth and time, but interp1 would only take one factor into account.
  2 个评论
dpb
dpb 2019-8-24
Hmmmm, Walter. I don't see what you're seeing--just that wants to interpolate onto a new time vector the two arrays. Altho I see the reference to the depth being what the columns of the array refer to I didn't see and his example code doesn't seem to want to do more than just those onto the Mitime vector.
Guess we'll find out if OP comes back... :)
Heidi Hirsh
Heidi Hirsh 2019-8-25
Hi guys! Thank you for the help! I think in this case interp1 did the trick since I was only trying to interpolate over time. But I have never used interp2 before so I really appreciate that advice and I will try it on another data set I have in mind where I do need to interpolate over depth.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by