首页 > 编程笔记 > MATLAB笔记 阅读:19

MATLAB contour()函数的用法(附带实例)

MATLAB 中,contour3() 函数用于绘制二维图时就等价于 contour() 函数,后者用来绘制二维等值线,可以看作是一个三维曲面向 xy 平面上的投影,它的调用格式及说明如下表所示:

表:contour()函数调用格式及说明
调用格式 说明
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('二维等值线图')             %  添加标题
运行结果如下图所示:

相关文章