3D interpolation using interp1

4 visualizaciones (últimos 30 días)
Emma Smolders
Emma Smolders el 12 de Nov. de 2021
Comentada: Emma Smolders el 12 de Nov. de 2021
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

Respuesta aceptada

Matt J
Matt J el 12 de Nov. de 2021
Editada: Matt J el 12 de Nov. de 2021
F=griddedInterpolant({1:m,1:n,z1},u);
interp_u=F({1:m,1:n,z2});
  1 comentario
Emma Smolders
Emma Smolders el 12 de Nov. de 2021
Thanks! I think this is working :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by