Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Interpolación de selecciones 2D en cuadrículas 3D

Este ejemplo muestra cómo reducir la dimensionalidad de los arreglos del plano de una cuadrícula 3D para resolver un problema de interpolación 2D.

En algunas áreas de aplicación, podría ser necesario interpolar un plano dimensional inferior de una cuadrícula; por ejemplo, interpolar un plano de una cuadrícula 3D. Cuando extrae el plano de la cuadrícula 3D, los arreglos resultantes podrían estar en formato 3D. Puede utilizar la función squeeze para reducir la dimensionalidad de los arreglos del plano de la cuadrícula para resolver el problema en 2D.

Cree una cuadrícula 3D de muestra y sus valores correspondientes.

[X,Y,Z] = ndgrid(1:5);
V = X.^2 + Y.^2 +Z;

Seleccione una muestra 2D de la cuadrícula. En este caso, la tercera columna de muestras.

x = X(:,3,:);
z = Z(:,3,:);
v = V(:,3,:);

El plano 2D se produce en Y=3, por lo que la dimensión Y se ha fijado. x, z y v son arreglos de 5 por 1 por 5. Debe reducirlos a arreglos 2D antes de evaluar el interpolante.

Reduzca x, z y v a arreglos 2D utilizando la función squeeze.

x = squeeze(x);
z = squeeze(z);
v = squeeze(v);

Interpole el segmento 2D en una cuadrícula más estrecha de puntos de consulta.

[Xq,Zq] = ndgrid(1:0.5:5);
Vq = interpn(x,z,v,Xq,Zq);

Represente los resultados.

figure
surf(Xq,Zq,Vq);
xlabel('Xq');
ylabel('Zq');
zlabel('Vq');

Figure contains an axes object. The axes object with xlabel Xq, ylabel Zq contains an object of type surface.

Consulte también

|

Temas relacionados