MATLAB mesh():绘制三维网格图(附带实例)
三维网格图的绘制稍显复杂,主要是因为绘图数据的准备及三维图形的色彩、明暗、光照和视角等的处理。
例如,绘制函数 z=f(x, y) 的三维网格图的过程如下:
1) 确定自变量的取值范围和取值间隔:
2) 构成 xOy 平面上的自变量采样“格点”矩阵:
① 利用“格点”矩阵的原理生成矩阵:
② 利用 meshgrid 指令生成“格点”矩阵:
3) 计算在自变量采样“格点”上的函数值:z=f(x, y)。在 MATLAB 中,利用 mesh() 函数绘制三维网格图,其调用格式如下:
【实例】在编辑器窗口中编写 M 文件并命名为3dmesh.m:

图 1 三维网格图
例如,绘制函数 z=f(x, y) 的三维网格图的过程如下:
1) 确定自变量的取值范围和取值间隔:
x=x1:dx:x2, y=y1:dy:y2
2) 构成 xOy 平面上的自变量采样“格点”矩阵:
① 利用“格点”矩阵的原理生成矩阵:
x=x1:dx:x2; y=y1:dy:y2; X=ones(size(y))*x; Y=y*ones(size(x));
② 利用 meshgrid 指令生成“格点”矩阵:
x=x1:dx:x2; y=y1:dy:y2; [X,Y]=meshgrid(x,y);
3) 计算在自变量采样“格点”上的函数值:z=f(x, y)。在 MATLAB 中,利用 mesh() 函数绘制三维网格图,其调用格式如下:
- mesh(X, Y, Z):以 X 为 x 轴自变量、Y 为 y 轴自变量绘制三维网格图;X、Y 均为向量,若 X、Y 的长度分别为 m、n,则 Z 为 m×n 维的矩阵,即 [m,n]=size(Z),则网格线的顶点为 (Xj, Yi, Zij)。
- mesh(Z):以 Z 矩阵的列下标为 x 轴自变量、行下标为 y 轴自变量绘制三维网格图。
- mesh(X, Y, Z, C):以 X 为 x 轴自变量、Y 为 y 轴自变量绘制三维网格图;其中 C 用于定义颜色,如果不定义 C,则成为 mesh(X, Y, Z),其绘制的三维网格图的颜色随着 Z 值的变化(曲面高度)而变化。
- mesh(X, Y, Z, 'PName', PValue, ...):以 X 为 x 轴自变量、Y 为 y 轴自变量绘制三维网格图;PValue 用来定义三维网格图的标记等属性。
【实例】在编辑器窗口中编写 M 文件并命名为3dmesh.m:
clear all X = -10:0.1:10; Y = -10:0.1:10; [X,Y] = meshgrid(X,Y); Z = - X.^2 - Y.^2 + 200; mesh(X,Y,Z) ,grid on运行程序,三维网格图如下图所示:

图 1 三维网格图