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.

ejemplo

[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

Evalúe y represente la función

x1e-x12-x22

en el dominio de cuadrícula

-2<x1<2 y -2<x2<2.

Cree una cuadrícula de valores para el dominio.

[X1,X2] = ndgrid(-2:.2:2);

Evalúe la función en el dominio.

Z = X1 .* exp(-X1.^2 - X2.^2);

Genere una gráfica de malla de la función.

mesh(X1,X2,Z)

Figure contains an axes object. The axes object contains an object of type surface.

En la versión R2016b y posteriores, esta tarea no requiere el uso de ndgrid. En cambio, puede construir la cuadrícula utilizando la ampliación implícita con estos comandos:

x = -2:.2:2;

Z1 = x.' .* exp(-(x.').^2 - x.^2);

Cree una cuadrícula 2D y calcule algunos valores de funciones 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) en el intervalo [-5,5].

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

Calcule algunos valores de la función en la cuadrícula y represente la función.

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

Figure contains an axes object. The axes object contains an object of type surface.

Interpole entre los puntos utilizando una cuadrícula más fina y represente el resultado.

[X1,Y1] = ndgrid(-5:0.125:5);
F = interpn(X,Y,f,X1,Y1,'spline');
surf(X1,Y1,F)

Figure contains an axes object. The axes object contains an object of type surface.

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