
- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据输出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策语句
- MATLAB - If End 语句
- MATLAB - If Else 语句
- MATLAB - If…Elseif Else 语句
- MATLAB - 嵌套 If 语句
- MATLAB - Switch 语句
- MATLAB - 嵌套 Switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - For 循环
- MATLAB - While 循环
- MATLAB - 嵌套循环
- MATLAB - Break 语句
- MATLAB - Continue 语句
- MATLAB - End 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - 返回语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - Map 函数
- MATLAB - Mean 函数
- MATLAB - End 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - Try...Catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 2D 线性图
- MATLAB - 3D 图
- MATLAB - 格式化图形
- MATLAB - 对数坐标轴图形
- MATLAB - 绘制误差条
- MATLAB - 绘制 3D 等高线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 2D 数组插值
- MATLAB - 3D 数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 2D 逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 绘制 3D 等高线图
等高线是在曲面或数据集中连接等值点的曲线。在数据可视化的背景下,等高线用于表示二元函数的变化。这些线连接具有相同函数值的点,形成曲线,突出显示强度或高度相似的区域。
对于 3D 等高线图,这些曲线存在于三维曲面上。等高线表示曲面与平行于 XY 平面的平面的交点,它们的模式传达了有关曲面形状和特征的信息。
在 MATLAB 中创建 3D 等高线图可以成为可视化三维数据的强大方法。3D 等高线图是三维曲面的图形表示,它使用等高线来显示数据变化。在 MATLAB 中,您可以创建此类图来可视化二元函数。这种类型的图有助于理解三维空间中曲面的结构和行为。
在 matlab 中,我们有以下方法可以帮助绘制等高线,它们是:
- contour3
- surfc
让我们详细了解这两种方法。
使用 contour3
MATLAB 中的 contour3 方法用于创建三维等高线图。此函数允许您可视化三维曲面的等高线,显示连接具有相同函数值的点的曲线。
语法
contour3(Z) contour3(X,Y,Z) contour3(___,levels) contour3(___,LineSpec)
语法的详细解释如下:
contour3(Z) - 生成三维等高线图,说明从矩阵 Z 派生的等值线。Z 表示 x-y 平面上的高度值。
contour3(X,Y,Z) - 它提供了 Z 中值的 x 和 y 坐标。
contour3(___,levels) - 如果将 levels 设置为标量,用 n 表示,则该函数会自动在 n 个适当选择的级别或高度上显示等高线。或者,如果您希望在特定高度绘制等高线,则可以将 levels 指定为具有单调递增值的向量。对于高度为 k 的等高线,请使用一个包含两个元素的行向量 [k k] 作为 levels 参数。
contour3(___,LineSpec) - 使用此方法,您可以更改等高线的样式和颜色。
让我们看看上面每个语法的一些示例。
示例 1:使用 contour3(Z)
上面语法的代码如下:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = sin(X) + cos(Y); contour3(Z);
在此示例中:
- meshgrid 用于创建 X 和 Y 值的网格。
- 函数 Z = sin(X) + cos(Y) 生成一个矩阵 Z,表示 x-y 平面上的高度值。
使用 contour3(Z),它创建了一个三维等高线图。该函数会根据矩阵 Z 中的值自动确定要显示的等高线。
当您在 matlab 命令窗口中执行代码时,输出为:

示例 2:使用 contour3(X,Y,Z)
上面语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = sin(X) + cos(Y); contour3(X, Y, Z);
在此示例中:
- meshgrid 用于创建 X 和 Y 值的网格。
- 函数 Z = sin(X) + cos(Y) 生成一个矩阵 Z,表示 x-y 平面上的高度值。
函数 contour3(X, Y, Z) 用于创建三维等高线图。X 和 Y 矩阵提供了 Z 中值的坐标。
当您在 matlab 命令窗口中执行代码时,输出为:

示例 3:使用 contour3(___,levels)
上面语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = sin(X) + cos(Y); contour3(X, Y, Z, [0, 0.5, 1]);
在此示例中:
- meshgrid 用于创建 X 和 Y 值的网格。
- 函数 Z = sin(X) + cos(Y) 生成一个矩阵 Z,表示 x-y 平面上的高度值。
函数 contour3(X, Y, Z, [0, 0.5, 1]) 用于创建三维等高线图。向量 [0, 0.5, 1] 指定特定等高线级别。
当您在 matlab 命令窗口中执行代码时,输出为:

示例 4:contour3(___,LineSpec)
上面语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = sin(X) + cos(Y); contour3(X, Y, Z, 'LineWidth', 2, 'LineColor', 'red', 'LineStyle', '--');
在此示例中:
- meshgrid 用于创建 X 和 Y 值的网格。
- 函数 Z = sin(X) + cos(Y) 生成一个矩阵 Z,表示 x-y 平面上的高度值。
方法 contour3(X, Y, Z, 'LineWidth', 2, 'LineColor', 'red', 'LineStyle', '--') 用于创建具有自定义线型和颜色的三维等高线图。
- 选项 'LineWidth', 2 指定 2 个点的线宽。
- 选项 'LineColor', 'red' 指定等高线的红色。
- 选项 'LineStyle', '--' 指定虚线样式。
当您在 matlab 命令窗口中执行代码时,输出为:

使用 surfc()
MATLAB 中的 surfc() 函数用于创建 3D 曲面图,并在曲面上显示等高线。它将曲面图的可视化与等高线相结合,提供了对基础数据的全面视图。“surfc”代表“带等高线的曲面”。
语法
surfc(X,Y,Z) surfc(X,Y,Z,C) surfc(___,Name,Value)
以下是上面提到的语法的详细解释:
surfc(X,Y,Z) - 函数生成一个 3D 曲面图,其中包含底层的等高线图。在此可视化中,曲面表示具有独特的实体边缘和面颜色的三维结构。绘制的曲面基于矩阵 Z 中的值,这些值被解释为 X 和 Y 定义的 x-y 平面中网格上方的高度。曲面的颜色根据 Z 矩阵中指定的高度而变化。
surfc(X,Y,Z,C) - 提供对生成图中曲面颜色的显式控制。
surfc(___,Name,Value) - 允许通过一个或多个名称-值对参数指定曲面属性。
示例 1:使用 surfc(X,Y,Z)
语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = sin(sqrt(X.^2 + Y.^2)); surfc(X, Y, Z);
在此示例中:
- meshgrid 用于在 x-y 平面上创建网格。
- 函数 sin(sqrt(X.^2 + Y.^2)) 用于根据 X 和 Y 定义曲面高度。
- 然后使用 surfc() 函数根据指定的 X、Y 和 Z 值创建 3D 曲面图,并带有底层的等高线图。
当您在 matlab 命令窗口中执行代码时,输出为:

示例 2:使用 surfc(X,Y,Z,C)
上面语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = peaks(X, Y); C = Z; surfc(X, Y, Z, C);
在此示例中:
- peaks 函数用于生成由 X 和 Y 定义的样本曲面。
- 矩阵 C 被设置为等于 Z 值,这表示曲面图中每个点的颜色值由 Z 矩阵中相应的的高度决定。
- 然后使用 surfc() 函数创建具有显式表面颜色控制的 3D 曲面图。
当您在 matlab 命令窗口中执行代码时,输出为:

示例 3:使用语法 surfc(___,Name,Value)
上面语法的代码为:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); Z = peaks(X, Y); surfc(X, Y, Z, 'FaceAlpha', 0.5);
在此示例中:
- 使用 meshgrid 定义 x-y 平面上的网格。
- peaks 函数用于生成由 X 和 Y 定义的样本曲面。
- 将 'FaceAlpha', 0.5 名值对参数与 surfc() 一起使用,以将表面的透明度设置为 0.5,使其半透明。
当您在 matlab 命令窗口中执行代码时,输出为:
