matlab的三维图绘制
matlab的三维图绘制
本章节主要以代码为主
-----引言
代码一
1 | %% mesh函数:绘制出在某一区间内完整的网格图 |
例题一
n = 11;
: 将变量n
的值设为11。
tem = linspace(0,5,n);
: 生成一个包含n个在0和5之间等间距点的行向量tem
。函数linspace
用于创建线性间隔的向量。
x = repmat(tem,n,1);
: 通过在行方向(重复n
次)和列方向(重复1次)复制向量tem
,创建矩阵x
。这形成一个矩阵,其中每一行都是向量tem
的副本。
y = repmat(tem',1,n);
: 类似于第3行,通过在行方向(重复1次)和列方向(重复n
次)复制向量tem
的转置,创建矩阵y
。这形成一个矩阵,其中每一列都是转置向量tem
的副本。
z = x.^2 - y.^2;
: 对矩阵x
和y
进行逐元素运算。z
的每个元素计算为相应的x
元素的平方减去相应的y
元素的平方。
mesh(x,y,z)
: 使用矩阵x
、y
和z
中的值创建一个3D网格图。这将表示函数 z = x^2 - y^2 的曲面图。
xlabel('x轴'); ylabel('y轴'); zlabel('z轴');
: 为图的x轴、y轴和z轴添加标签。
axis vis3d
: 将图的三个维度的纵横比设置为相等,使图在视觉上更加准确。这对于3D图来说尤为重要,以避免失真。总之,该代码在指定范围内使用由
x
和y
定义的网格,生成函数 z = x^2 - y^2 的3D曲面图。然后,图被标注为x轴、y轴和z轴的标签。
代码二
1 | %% surf函数:绘制出在某一区间内完整的曲面图 |
subplot(m, n, index)
是 MATLAB 中用于创建多个子图的函数,其中:
m
表示子图布局的行数(即总行数)。n
表示子图布局的列数(即总列数)。index
表示当前子图的索引,从左上角开始按行从左到右的顺序编号。在你提供的例子中,
subplot(1,2,1)
表示将当前图形划分为1行2列的子图布局,并且当前绘图将位于第1个(左侧)子图位置。这意味着在当前图形中,你可以绘制两个子图,而当前命令将设置绘图环境为左侧的第一个子图,以便在此子图中进行绘图。例如,你可以使用以下代码在两个子图中绘制不同的图形:
1
2
3
4
5 subplot(1,2,1)
% 在第一个子图中绘制图形
subplot(1,2,2)
% 在第二个子图中绘制另一个图形这样可以方便地将多个相关的图形进行比较,而不必为每个图形创建一个新的图形窗口。
代码三
1 | %% contour函数: 绘制等高线图 |
代码四
1 | %% 符号函数的三维图形绘制 |