3D interpolation using interp1

1 回表示 (過去 30 日間)
Emma Smolders
Emma Smolders 2021 年 11 月 12 日
コメント済み: Emma Smolders 2021 年 11 月 12 日
Dear all,
I have a velocity field in a lake whichis contructed on a (m,n,k) grid where m is the number of grid points in the x-direction, n in the y-direction and k the number of vertical layers. At the moment, I have 100 layers (so k = 100) distributed over a depth of 350 meters. I would like to interpolate this velocity field to 200 layers in the vertical distributed over the same depth. I thought the following piece of code would work, where z1 is a (1,100) array containing depth layers and z2 a (1,200) array containing 200 depth layers on which I would like the velocity field to be interpolated. This code does not work since I get the error that X and V must be of the same length. But they are of the same length, right? Does anyone know how to code this properly?
Many thanks in advance!
for i = 1:m
for j = 1:n
interp_u = interp1(z1, u(i, j, :), z2, 'linear')
end
end

採用された回答

Matt J
Matt J 2021 年 11 月 12 日
編集済み: Matt J 2021 年 11 月 12 日
F=griddedInterpolant({1:m,1:n,z1},u);
interp_u=F({1:m,1:n,z2});
  1 件のコメント
Emma Smolders
Emma Smolders 2021 年 11 月 12 日
Thanks! I think this is working :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by