迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > MATLAB >

MATLAB 中的 3D 绘图

作者:迹忆客 最近更新:2023/05/09 浏览次数:

本文将讨论在 MATLAB 中使用 mesh()scatter3()contour3()plot3()quiver3()bar3() 函数创建 3d 图。

在 MATLAB 中使用 mesh() 函数创建曲面图

Matlab 的内置函数 mesh() 在 3D 平面上创建曲面图。我们可以将 mesh() 函数内的矩阵作为我们想要在 3D 平面中绘制的函数传递。

mesh() 函数将使用 x-y 坐标的默认值沿 z 轴绘制给定矩阵。x 和 y 坐标将来自给定矩阵的索引。

给定的矩阵将在 z 轴上绘制为三维平面上的高度。

例如,让我们创建一个矩阵 Z 并使用 Matlab 中的 mesh() 函数将其绘制在曲面图上。

请参阅下面的代码。

clc
[x,y] = meshgrid(-18:1:18);
r = sqrt(x.^2 + y.^2)/2;
z = cos(r)./r;
mesh(x,y,z)

输出:

曲面图 1

在 MATLAB 中使用 scatter3() 函数创建 3D 散点图

如果我们想创建一个 3D 散点图,我们可以使用 scatter3() 函数。此函数与 scatter() 函数相同,但它将给定数据绘制在 3D 平面中。

我们可以给 scatter3() 函数提供两个或三个输入向量。

在三个输入的情况下,第一个向量包含 x 坐标,第二个包含 y 坐标,第三个包含 z 坐标。

在两个输入向量的情况下,第三个坐标 z 将取自前两个坐标的索引。

例如,让我们使用 scatter3() 函数在 3D 位置绘制散点图。

请参阅下面的代码。

clc
x = linspace(0,2*pi,100);
y = sin(x) + rand(1,100);
z = 1:100;
scatter3(x,y,z)

输出:

3D 平面中的散点图

在 MATLAB 中使用 contour3() 函数创建 3D 等高线图

我们可以使用 Matlab 的内置函数 contour3() 创建 3D 等高线图。等值线图是根据值具有不同颜色的等值线图。

赋予线条的颜色取决于它的值。较冷的颜色对应于较低的值,较热的颜色对应于较高的值。

例如,让我们使用 sphere()contour3() 函数绘制一个球体的 3D 等高线图。请参阅下面的代码。

clc
[x,y,z] = sphere(100);
contour3(x,y,z);

输出:

球体的 3D 等高线图

在 MATLAB 中使用 plot3() 函数创建点或线的 3D 图

我们已经知道 Matlab 中的 plot() 函数,它用于在 2D 平面上绘制数据。plot3() 函数类似于 plot() 函数。

唯一的区别是 plot3() 函数在 3D 平面上绘制数据。我们可以将数据绘制为一条线,即连续图,也可以绘制为点,即离散图。

我们必须传递三个坐标 x、y 和 z,才能在 3D 平面上绘制数据。例如,让我们使用 plot3() 函数在 3D 中绘制螺旋线。

请参阅下面的代码。

clc
t = 0:pi/50:10*pi;
sinet = sin(t);
cost = cos(t);
plot3(sinet,cost,t)

输出:

3D 图上的螺旋线

在 MATLAB 中使用 quiver3() 函数创建 3D Quiver 或矢量图

Matlab 的内置函数 quiver3() 可用于绘制 3D 箭袋或矢量图。标量仅包含幅度,但向量包含幅度和方向。

我们可以使用 plot3() 函数创建标量数据的 3D 图,但我们不能使用 plot3() 函数绘制矢量数据,因为该函数不会绘制矢量的方向。

在向量的情况下,我们可以使用 quiver3() 函数,它将绘制向量的大小和方向。

例如,让我们创建一个矩阵并将其绘制在具有方向的 3D 平面上。请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
quiver3(m,m,m,m)

输出:

3D 箭袋图

在 MATLAB 中使用 bar3() 函数创建 3D 条形图

我们可以使用 Matlab 的内置函数 bar3() 在 3D 平面上绘制条形图。我们必须传递数据的输入矩阵,在 3D 平面中绘制为 z 轴上的高度。

其他两个坐标(x 和 y)将取自给定矩阵的索引。例如,让我们从给定的矩阵创建一个 3D 条形图。

请参阅下面的代码。

clc
m = [1:10 ;10:-1:1;1:10];
bar3(m)

输出:

使用 bar3 的条形图

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 MATLAB 中注释多行

发布时间:2023/04/23 浏览次数:111 分类:MATLAB

可以使用注释块方法或 MATLAB 编辑器在 MATLAB 中注释多行。

MATLAB 最大索引

发布时间:2023/04/23 浏览次数:192 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 max() 函数从数组及其索引中查找最大值。

MATLAB 索引超出矩阵尺寸

发布时间:2023/04/23 浏览次数:103 分类:MATLAB

要解决索引超出矩阵索引的问题,请检查你要获取或替换数据的索引。

MATLAB 检查变量类型

发布时间:2023/04/23 浏览次数:92 分类:MATLAB

在本教程中,我们将讨论如何使用 MATLAB 中的 class() 和 whos 函数检查给定变量的类型。

MATLAB vs Octave

发布时间:2023/04/23 浏览次数:74 分类:MATLAB

我们可以说 Octave 是 MATLAB 的免费版本。

MATLAB MAT 文件

发布时间:2023/04/23 浏览次数:89 分类:MATLAB

可以使用 MAT 文件在 MATLAB 中存储和加载格式化的数据。

MATLAB asv 文件

发布时间:2023/04/23 浏览次数:180 分类:MATLAB

.asv 文件是 MATLAB 生成的自动保存文件,因此在计算机崩溃时你不会丢失数据。

MATLAB 三元运算符

发布时间:2023/04/23 浏览次数:130 分类:MATLAB

MATLAB 中没有三元运算符,因此你必须使用标准格式。

MATLAB & vs &&

发布时间:2023/04/23 浏览次数:134 分类:MATLAB

在 MATLAB 中,&是逻辑与运算符,&&也是表现出短路行为的逻辑运算符。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便