Función meshgrid en MATLAB: malla personalizada para gráficos 2D/3D vs grid automático

MATLAB es un paquete software matemático útil para cálculos desde aritmética simple y cálculo hasta álgebra lineal y procesamiento de señales. También grafica datos. Sus miles de funciones integradas son su potencia, y una de sus potentes herramientas de gráficos es la función meshgrid. Esta pone líneas de cuadrícula definidas por el usuario en gráficos bidimensionales y tridimensionales.

Valores por defecto de gráficos en MATLAB

Al usar cualquiera de las funciones de gráfico 2D de MATLAB solas, sin instrucciones adicionales, MATLAB no usa líneas de cuadrícula. Si el usuario grafica en 2D, el fondo del gráfico queda en blanco. En 3D, MATLAB usa una cuadrícula genérica. Si se necesitan líneas de cuadrícula en un gráfico 2D para claridad, el usuario debe especificarlo al llamar al comando de gráfico o desde la ventana de figura tras generar el gráfico.

meshgrid vs grid

La función grid de MATLAB es forma simple de activar líneas de cuadrícula genéricas en 2D al llamar a un gráfico. Un algoritmo preprogramado decide cuántas líneas y su separación. En cambio, con meshgrid el usuario determina completamente las líneas horizontales y verticales que aparecen. Además, con «grid» el número y separación es igual para ambos ejes; con «meshgrid» el usuario puede pedir, ej., tres líneas horizontales y 100 verticales.

Ejemplo 3D

Ejemplo usando «meshgrid» para gráfico tridimensional:

[X,Y] = meshgrid(-2:.2:2, -1:0.2:1)
Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)

La primera línea dice a MATLAB: líneas horizontales de -2 a 2 con paso 0,2; líneas verticales de -1 a 1 en pasos de 0,1. La segunda línea define cómo calcular «Z» según «X» e «Y». Por último, «surf» dibuja una superficie 3D suspendida en el espacio, con la meshgrid adaptada a la superficie.

Otro ejemplo 3D

Otra forma de usar «meshgrid» para gráfico 3D:

[X,Y] = meshgrid(-2:.2:2)
Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)

La segunda y tercera líneas son idénticas, pero aquí «meshgrid» recibe solo un argumento. MATLAB entiende que un solo argumento significa usar el mismo número de líneas y separación para «X» e «Y». Con este código, la superficie tendrá 21 líneas horizontales y 21 verticales, igualmente espaciadas.