MATLAB 中的 meshgrid() 函数

Ammar Ali 2024年2月15日
MATLAB 中的 meshgrid() 函数

本教程将讨论使用 Matlab 中的 meshgrid() 函数创建网格。

使用 MATLAB 中的 meshgrid() 函数创建网格

为了在 Matlab 中创建 2D 和 3D 网格,我们可以使用 Matlab 的内置函数 meshgrid()。在 Matlab 中,网格用于在 3D 平面上绘制数据。要在 3D 平面上绘制向量或矩阵,我们必须使用 meshgrid() 函数创建 2D 或 3D 网格。在 2D 图中,我们将 x 和 y 坐标作为向量传递,但在 3D 中,我们必须传递矩阵而不是向量。我们可以使用 meshgrid() 函数将向量转换为矩阵,这些矩阵将用于在 3D 平面中绘制数据。例如,让我们使用 meshgrid() 函数将包含 x 和 y 坐标的两个向量转换为矩阵。请参阅下面的代码。

clc
x = 1:4
y = 1:6
[X,Y] = meshgrid(x,y)

输出:

x =

     1     2     3     4


y =

     1     2     3     4     5     6


X =

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


Y =

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

在输出中,我们可以看到小 x 和 y 与大写 X 和 Y 之间的区别。我们不能使用小 x 和 y 坐标在 3D 平面中绘制数据,但可以使用大写的 X 和 Y 坐标进行绘制 3D 平面中的数据。例如,让我们使用 X 和 Y 坐标以及 surf() 函数创建一个要在 3D 平面上绘图的向量。请参阅下面的代码。

clc
x = 1:4;
y = 1:6;
[X,Y] = meshgrid(x,y);
Z = X.^2 + Y.^2;
surf(X,Y,Z)

输出:

使用网格网格的 3D 绘图

surf() 函数用于在 3D 平面上绘制矩阵 Z。矩阵 Z 应与 X 和 Y 矩阵具有相同的大小。我们还可以使用 meshgrid() 函数使用三个或一个输入向量和三个输出变量创建一个 3D 网格。meshgrid() 函数将创建一个 3D 网格,形成网格点的立方体。如果我们在 meshgrid() 函数中只传递一个输入向量,该函数将从第一个向量的索引中获取另外两个坐标。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot