HOWTO · MATLAB
La función meshgrid() en MATLAB
Aprende cómo meshgrid() en MATLAB convierte vectores de coordenadas en matrices, evalúa una función en una cuadrícula 2-D y visualiza el resultado con surf().
En esta página
meshgrid() en MATLAB convierte vectores de coordenadas en matrices de coordenadas, para que puedas evaluar una función en cada punto de una cuadrícula 2-D y representar los valores resultantes. El ejemplo siguiente usa cantidades diferentes de coordenadas x e y para que la orientación de la matriz quede clara.
Entiende cómo meshgrid() asigna las coordenadas
Llama a meshgrid(x, y) con vectores de entrada en minúsculas. Devuelve las matrices en mayúsculas X e Y: cada fila de X repite las coordenadas x, mientras que cada columna de Y repite una coordenada y. Las filas corresponden a valores de y, y las columnas corresponden a valores de x.
Por ejemplo, x = 1:4 tiene cuatro valores e y = 1:6 tiene seis. Las matrices resultantes X e Y tienen cada una seis filas y cuatro columnas. Es útil recordar esta orientación al comprobar una cuadrícula o al hacerla coincidir con una matriz de valores de función.
Crear una cuadrícula de coordenadas 2-D
Este ejemplo autónomo y compatible con Octave crea una cuadrícula no cuadrada, evalúa una función en cada par de coordenadas y dibuja la superficie resultante. Imprime una vista compacta del patrón de coordenadas y del tamaño de la matriz.
warning('off', 'Octave:gnuplot-graphics');
set(0, 'defaultfigurevisible', 'off');
x = 1:4;
y = 1:6;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;
fprintf('X(1,:) =');
fprintf(' %g', X(1,:));
fprintf('\nY(:,1) =');
fprintf(' %g', Y(:,1));
fprintf('\nsize(Z) = %d %d\n', size(Z));
surf(X, Y, Z);
La primera fila impresa muestra que X repite 1 2 3 4 en cada fila. La primera columna de Y muestra las coordenadas y de 1 a 6, con cada valor repetido en su fila. Así, cada par X(i,j) e Y(i,j) da un par de coordenadas, y Z(i,j) almacena el valor de la función en ese punto. El operador .^ eleva al cuadrado cada elemento de la matriz; la potencia matricial ordinaria no expresaría este cálculo elemento a elemento.
X(1,:) = 1 2 3 4
Y(:,1) = 1 2 3 4 5 6
size(Z) = 6 4
Evaluar y representar una función sobre la cuadrícula
El ejemplo calcula Z = X.^2 + Y.^2 a partir de las matrices de coordenadas y luego pasa X, Y y Z a surf(). Para este flujo de trabajo, Z debe tener el mismo número de filas y columnas que X e Y, de modo que cada altura representada corresponda a un par de coordenadas. Si cambias cualquiera de los vectores de entrada, meshgrid() cambia las dimensiones de la cuadrícula y la expresión elemento a elemento calcula valores coincidentes.
Para una vista cenital de los niveles de la función, contour(X, Y, Z) de MATLAB puede usar las mismas matrices en lugar de surf(). Visualiza curvas de igual valor; es una llamada de representación alternativa, no un ejemplo ejecutado adicional aquí.
Crear una cuadrícula de coordenadas 3-D
Una cuadrícula de coordenadas tridimensional es útil cuando una función depende de tres coordenadas espaciales, como una magnitud evaluada en todo un volumen. Este artículo cubre el flujo de trabajo de dos vectores meshgrid(x, y) y no especifica la sintaxis de llamada tridimensional ni las dimensiones de salida. Consulta la documentación de la versión de MATLAB que uses antes de adaptar el enfoque a una tercera coordenada.