Main Content

ndgrid

Cuadrícula rectangular en espacio en ND

Descripción

ejemplo

[X1,X2,...,Xn] = ndgrid(x1,x2,...,xn) replica los vectores de cuadrícula x1,x2,...,xn para producir una cuadrícula completa de n dimensiones.

[X1,X2,...,Xn] = ndgrid(xg) especifica un único vector de cuadrícula xg que se utilizará en todas las dimensiones. El número de argumentos de salida que especifique determina la dimensionalidad n de la salida.

Ejemplos

contraer todo

Cree una cuadrícula en 2D a partir de los vectores [1 3 5 7 9 11 13 15 17 19] y [2 4 6 8 10 12].

[X,Y] = ndgrid(1:2:19,2:2:12)
X = 10×6

     1     1     1     1     1     1
     3     3     3     3     3     3
     5     5     5     5     5     5
     7     7     7     7     7     7
     9     9     9     9     9     9
    11    11    11    11    11    11
    13    13    13    13    13    13
    15    15    15    15    15    15
    17    17    17    17    17    17
    19    19    19    19    19    19

Y = 10×6

     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12

Cree una cuadrícula rectangular y calcule los valores de función en la cuadrícula. Interpole entre los valores asignados para refinar la cuadrícula.

Cree una cuadrícula de baja resolución para (x,y), donde el rango de x es [-6,6] y el rango de y es [-3,3].

[X,Y] = ndgrid(-6:0.5:6,-3:0.5:3);

Evalúe la función en las ubicaciones definidas en la cuadrícula. Luego, visualice la función utilizando una gráfica de superficie. Como alternativa, desde la versión R2016b, puede utilizar ampliación implícita para esta tarea.

f = sin(X.^2) .* cos(Y.^2);
surf(Y,X,f)

Interpole entre los puntos en una cuadrícula más fina (Xq,Yq). Luego, visualice los valores interpolados utilizando una gráfica de superficie.

[Xq,Yq] = ndgrid(-6:0.125:6,-3:0.125:3);
F = interpn(X,Y,f,Xq,Yq,"spline");
surf(Yq,Xq,F)

Argumentos de entrada

contraer todo

Vectores de cuadrícula, especificados como vectores que contienen coordenadas de cuadrícula para cada dimensión. Los vectores de cuadrícula definen implícitamente la cuadrícula. Por ejemplo, en 2D:

Grid vectors implicitly define a full grid

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Soporte de números complejos:

Vector de cuadrícula para todas las dimensiones, especificado como un vector que contiene coordenadas de cuadrícula. ndgrid usa xg como vector de cuadrícula para cada dimensión.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Soporte de números complejos:

Argumentos de salida

contraer todo

Representación en cuadrícula completa, devuelta como arreglos separados. Para cada arreglo de salida Xi, la i-ésima dimensión contiene copias del vector de cuadrícula xi.

Más acerca de

contraer todo

Convertir entre los formatos meshgrid y ndgrid

meshgrid y ndgrid crean cuadrículas con distintos formatos de salida. De forma específica, las dos primeras dimensiones de la cuadrícula creada con una de dichas funciones están intercambiadas en comparación con el otro formato de cuadrícula. Algunas funciones de MATLAB® emplean cuadrículas en el formato meshgrid, mientras que otras utilizan el formato ndgrid, por lo que es habitual convertir cuadrículas entre ambos formatos.

Puede convertir las cuadrículas entre esos formatos utilizando pagetranspose (desde la versión R2020b) o permute para intercambiar las dos primeras dimensiones de los arreglos de cuadrícula. Por ejemplo, cree una cuadrícula 3D con meshgrid.

[X,Y,Z] = meshgrid(1:4,1:3,1:2);

A continuación, trasponga las dos primeras dimensiones de cada arreglo de cuadrícula para convertir la cuadrícula al formato ndgrid y compare los resultados con las salidas de ndgrid.

Xt = pagetranspose(X);
Yt = pagetranspose(Y);
Zt = pagetranspose(Z);
[Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2);
isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans =

  logical

   1

Utilizar pagetranspose equivale a cambiar las dos primeras dimensiones y dejar las demás dimensiones igual. También puede llevar a cabo esta operación utilizando permute(X,[2 1 3:ndims(X)]).

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido antes de R2006a