MATLAB contour()函数的用法(附带实例)
MATLAB 中,contour3() 函数用于绘制二维图时就等价于 contour() 函数,后者用来绘制二维等值线,可以看作是一个三维曲面向 xy 平面上的投影,它的调用格式及说明如下表所示:
【实例 1】绘制参数化曲面 x=usinv,y=−ucosv 和 z=v 的二维等值线。在 MATLAB 命令行窗口中输入如下命令:

图 1 绘制曲面图像与等值线图
【实例 2】绘制下面曲面的等值线:
在 MATLAB 命令行窗口中输入如下命令:
调用格式 | 说明 |
---|---|
contour(Z) | 把矩阵 Z 中的值作为一个二维函数的值,等值线是一个平面的曲线,平面的高度 v 是 MATLAB 自动选取的 |
contour(X,Y,Z) | 指定 Z 中各值的 x 坐标和 y 坐标,Z 为相应点的高度值矩阵 |
contour(…,n) | 画出 n 条等值线,在 n 个自动选择的层级(高度)上显示等值线 |
contour(…,v) | 在指定的高度 v 上画出等值线,v 指定为二元素行向量 (k,k) |
contour(…,LineSpec) | 用参数 LineSpec 指定的线型与颜色画等值线 |
contour(…,Name,Value) | 使用名称-值对组参数指定等值线图的属性 |
contour(ax,…) | 在 ax 指定的目标坐标区中显示等值线图 |
[C,h] = contour(…) | 返回等值矩阵 C 和线句柄或块句柄列向量 h,每条线对应一个句柄,句柄中的 userdata 属性包含每条等值线的高度值 |
【实例 1】绘制参数化曲面 x=usinv,y=−ucosv 和 z=v 的二维等值线。在 MATLAB 命令行窗口中输入如下命令:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> [u,v]=meshgrid(-4:0.25:4); % 通过向量定义网格数据u、v >> X = u.*sin(v); % 通过网格数据u、v定义函数表达式X >> Y = -u.*cos(v); % 通过网格数据u、v定义函数表达式Y >> Z =v; % 通过网格数据v定义函数表达式Z >> subplot(1,2,1); % 将视图分割为1行2列2个窗口,显示第1个视图 >> surf(X,Y,Z); % 绘制三维曲面 >> title('曲面图像'); % 添加标题 >> subplot(1,2,2); % 显示第2个视图 >> contour(X,Y,Z); % 绘制三维曲面的二维等值线图 >> title('二维等值线图') % 添加标题运行结果如下图所示:

图 1 绘制曲面图像与等值线图
【实例 2】绘制下面曲面的等值线:

在 MATLAB 命令行窗口中输入如下命令:
>> close all % 关闭当前已打开的文件 >> clear % 清除工作区的变量 >> [X,Y] = meshgrid(-2:0.0125:2); % 通过向量定义网格数据X、Y >> Z = X.*exp(-X.^2-Y.^2); % 通过网格数据X、Y定义函数表达式 Z >> subplot(1,3,1); % 将视图分割为1行3列3个窗口,显示第1个视图 % 绘制三维曲面,设置曲面透明度为0.8,无轮廓颜色 >> surf(X,Y,Z,'FaceAlpha',0.8,'EdgeColor','none'); >> title('曲面图像'); % 添加标题 >> subplot(1,3,2); % 显示第2个视图 >> contour3(X,Y,Z,30,'LineWidth',3); % 绘制等值线线宽为3的曲面三维等值线 >> title('三维等值线图'); % 添加标题 >> subplot(1,3,3); % 显示第3个视图 >> contour(X,Y,Z,'LineWidth',3); % 绘制等值线线宽为3的曲面二维等值线 >> title('二维等值线图') % 添加标题运行结果如下图所示:
