Main Content

meshgrid

Cuadrículas 2D y 3D

Descripción

ejemplo

[X,Y] = meshgrid(x,y) devuelve coordenadas de cuadrícula 2D basadas en las coordenadas que contienen los vectores x e y. X es una matriz en la que cada fila es una copia de x, mientras que Y es una matriz en la que cada columna es una copia de y. La cuadrícula que representan las coordenadas X e Y tiene length(y) filas y length(x) columnas.

ejemplo

[X,Y] = meshgrid(x) es lo mismo que [X,Y] = meshgrid(x,x) y devuelve coordenadas de cuadrícula con un tamaño de cuadrícula de length(x) por length(x).

ejemplo

[X,Y,Z] = meshgrid(x,y,z) devuelve coordenadas de cuadrícula 3D que definen los vectores x, y y z. La cuadrícula que representan X, Y y Z tiene un tamaño de length(y) por length(x) por length(z).

ejemplo

[X,Y,Z] = meshgrid(x) es lo mismo que [X,Y,Z] = meshgrid(x,x,x) y devuelve coordenadas de cuadrícula 3D con un tamaño de cuadrícula length(x) por length(x) por length(x).

Ejemplos

contraer todo

Cree coordenadas de cuadrícula 2D con coordenadas x que defina el vector x y coordenadas y que defina el vector y.

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X = 5×3

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y = 5×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5

Evalúe la expresión x2+y2 sobre la cuadrícula 2D.

X.^2 + Y.^2
ans = 5×3

     2     5    10
     5     8    13
    10    13    18
    17    20    25
    26    29    34

Cree una cuadrícula 2D con coordenadas x espaciadas uniformemente y coordenadas y en el intervalo [-2,2].

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);

Evalúe y represente la función f(x,y)=xe-x2-y2 sobre la cuadrícula 2D.

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

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

A partir de la versión R2016b no siempre es necesario crear la cuadrícula antes de operar sobre ella. Por ejemplo, al procesar la expresión xe-x2-y2 se expanden de forma implícita los vectores x e y. Para obtener más información sobre la expansión implícita, consulte Operaciones con matrices y operaciones con arreglos.

surf(x,y,x.*exp(-x.^2-(y').^2))

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

Cree coordenadas de cuadrícula 3D a partir de las coordenadas x, y y z que se definen en el intervalo [0,6] y evalúe la expresión x2+y2+z2.

x = 0:2:6;
y = 0:1:6;
z = 0:3:6;
[X,Y,Z] = meshgrid(x,y,z);
F = X.^2 + Y.^2 + Z.^2;

Determine el tamaño de la cuadrícula. Los tres vectores de coordenadas tienen distintas longitudes y forman un cuadro de puntos de cuadrícula rectangular.

gridsize = size(F)
gridsize = 1×3

     7     4     3

Use la sintaxis de una entrada para generar una cuadrícula 3D espaciada uniformemente que se base en las coordenadas que se establecen en x. La cuadrícula nueva forma un cubo de puntos de cuadrícula.

[X,Y,Z] = meshgrid(x);
G = X.^2 + Y.^2 + Z.^2;
gridsize = size(G)
gridsize = 1×3

     4     4     4

Argumentos de entrada

contraer todo

coordenadas x de puntos, especificadas como vector.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

coordenadas y de puntos, especificadas como vector.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

coordenadas z de puntos, especificadas como vector.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

contraer todo

coordenadas x sobre una cuadrícula, devueltas como arreglo 2D (dos entradas) o 3D (tres entradas).

coordenadas y sobre una cuadrícula, devueltas como arreglo 2D (dos entradas) o 3D (tres entradas).

coordenadas z sobre una cuadrícula, devueltas como arreglo 3D.

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™.

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Historial de versiones

Introducido antes de R2006a