MATLAB 中的网格曲面图

Ammar Ali 2024年2月15日
MATLAB 中的网格曲面图

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

使用 MATLAB 中的 mesh() 函数创建曲面图

Matlab 的内置函数 mesh() 在 3D 平面上创建曲面图。我们可以将 mesh() 函数内的矩阵作为我们想要在 3D 平面中绘制的函数传递。mesh() 函数将使用 x-y 坐标的默认值沿 z 轴绘制给定矩阵。x 和 y 坐标将来自给定矩阵的索引。给定的矩阵将在 z 轴上绘制为三维平面上的高度。例如,让我们创建一个矩阵 Z 并使用 Matlab 中的 mash() 函数将其绘制在曲面图上。请参阅下面的代码。

clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)

输出:

Matlab 网格曲面图 1

我们可以创建自己的 XY 平面来绘制给定的矩阵,而不是使用此矩阵的默认值。使用 mesh() 函数的曲面图将具有纯色面颜色且没有边缘颜色。你还可以使用 mesh() 函数内的第四个参数指定网格的颜色。我们还可以设置其他属性,例如 FaceAlpha,用于设置表面的可见性。

默认情况下,曲面的可见性为 1。你还可以创建网格函数的对象以供以后使用,并编辑和更改任何其他函数属性。你可以使用 meshgrid() 函数与 x-y 坐标一起创建网格。曲面图已经根据颜色绘制出来了,所以我们也可以在曲面图的旁边画一个颜色条来表示哪个颜色对应哪个值。

让我们在上面的图上画一个颜色条。请参阅下面的代码。

clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)
colorbar

输出:

Matlab 网格曲面图和颜色条

我们可以使用 meshc() 函数代替 mesh() 函数在曲面图下方绘制计数器。我们也可以使用 meshz() 函数代替 mesh() 函数在表面图下方绘制窗帘。在网格曲面图中,较冷的颜色对应于较低的值,较热的颜色对应于最大值。

我们还可以使用 line style 属性更改绘图的线条样式。默认的线条样式属性是实线,但我们可以将其更改为 dash solid 或 solid dashed 或虚线。你还可以使用 surf() 函数代替 mesh() 函数来绘制曲面图。

mesh()surf() 函数的区别在于,当我们使用 mesh() 函数时,边缘颜色会是纯色的,不会有面色,但是如果我们使用 surf() 函数,将没有边缘颜色和纯面颜色。

在上面的图中,我们可以看到该图由多个带有彩色边缘的框组成,但它们的中心没有颜色,但是如果我们使用 surf() 函数,这些框将被填充颜色。我们还可以使用 FaceColor 属性在 mesh() 函数中打开面部着色,也可以使用相同属性在 surf() 函数中关闭面部着色。

作者: 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