1, 使用 contour 函数绘制等值图, 示例:
%% 显示不同颜色的梯度图
- clear; clc; close all;
- x = -3.5:0.2:3.5;
- y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); % 获取网格
- Z = X.*exp(-X.^2-Y.^2);
- subplot(2,1,1);
mesh(X,Y,Z); % 绘制三维图
axis square; % 坐标轴之间的尺度相等
subplot(2,1,2);
contour(X,Y,Z); % 显示不同高度的线段
axis square; % 坐标轴之间的尺度相等
效果显示:
2, 使用 clabel 函数查看等值线上的值, 示例:
%% 使用 clabel 函数查看等值线的值
- clear; clc; close all;
- x = -3.5:0.2:3.5;
- y = -3.5:0.2:3.5;
- [X,Y] = meshgrid(x,y);
- Z = X.*exp(-X.^2-Y.^2);
[C,h] = contour(Z); % 显示梯度, 并且获取梯度数据进行操作
clabel(C,h); % 显示梯度的值
效果显示:
3, 使用 contourf 函数查看等值线, 示例:
%% 使用 contourf 函数显示等值线, 并且有颜色填充
- clear; clc; close all;
- x = -3.5:0.2:3.5;
- y = -3.5:0.2:3.5;
- [X,Y] = meshgrid(x,y);
- Z = X.*exp(-X.^2-Y.^2);
contourf(Z); % 显示梯度, 并且使用颜色进行填充
效果显示:
4, 使用 meshc 函数和 surfc 函数查看原图和等值线图的对比, 示例:
%% meshc 和 surfc 显示三维图, 并且显示不同的等高线
- clear; clc; close all;
- x = -3.5:0.2:3.5;
- y = -3.5:0.2:3.5;
[X,Y] = meshgrid(x,y); % 获取网格
- Z = X.*exp(-X.^2-Y.^2);
- subplot(1,2,1);
meshc(X,Y,Z); % 绘制三维图, 并且显示等高线
subplot(1,2,2);
surfc(X,Y,Z); % 绘制三维图, 并且显示等高线
效果显示:
说明: 一般情况下如果想看原来图像和等值线的对比图, 在函数后面加字母 c 即可, 如 meshc 查看 mesh 函数绘制图形的等值图和原图的对比.
4, 使用隐含数绘制等值线图:
使用 ezcontour 函数绘制, 示例:
%% 符号函数的等值线图
- clear; clc; close all;
- figure;
- ezcontour('x.*exp(-x.^2-y.^2)',[-3 3]);
效果显示:
使用 ezmeshc 函数绘制, 示例:
%% 带有等值线的三维网格图
- clear; clc; close all;
- figure;
- ezmeshc('x.*exp(-5*x.^2-8*y.^2)');
效果显示:
使用 ezsurfc 函数绘制, 示例:
%% 带有等值线的三维彩色的曲面图
- clear; clc; close all;
- figure;
- ezsurfc('4*x.*exp(-4*x.^2 - 6*y.^2)');
效果显示:
来源: http://www.bubuko.com/infodetail-3453524.html