3D interpolation using interp1

5 Ansichten (letzte 30 Tage)
Emma Smolders
Emma Smolders am 12 Nov. 2021
Kommentiert: Emma Smolders am 12 Nov. 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

Akzeptierte Antwort

Matt J
Matt J am 12 Nov. 2021
Bearbeitet: Matt J am 12 Nov. 2021
F=griddedInterpolant({1:m,1:n,z1},u);
interp_u=F({1:m,1:n,z2});

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by