之前使用 plot 和 plot3 绘制的都是线图 , 给定若干个点的向量 , 绘制这些点 , 然后将这些点使用直线连接起来 , 组成了线图 ;
绘制
维线图时 , 只需要给定
三个向量 ( 每个向量都含有
个元素 ) , 分别是
个点的
坐标值 ;
两点之间 , 使用线连接起来即可 ;
平面图形 Surface , 绘制的是一个平面 , 需要给定
三个值 , 其中
是矩阵 ;
如
都是
的矩阵 , 那么
就可以决定一个
个点组成的平面 , 此时
个点的
轴的值是
矩阵中对应的
个值中的一个 ;
平面是按照矩阵网格状进行分布 ;
meshgrid 参考文档 : https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html
使用 meshgrid 函数 , 可以产生
矩阵的值 , 即产生的是
坐标轴的网格平面 ;
生成二维网格示例 :
% 生成 x 向量
x = -2 : 1 : 2
% 生成 y 向量
y = -2 : 1 : 2
% 生成 X Y 两个矩阵
% 生成了 x-y 坐标轴上的网格
[X, Y] = meshgrid(x, y)
打印结果 :
>> Untitled
x =
-2 -1 0 1 2
y =
-2 -1 0 1 2
X =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
Y =
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
>>
向量
-2 -1 0 1 2
和
向量
-2 -1 0 1 2
生成的二维网格 ,
矩阵 :
X =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
矩阵 :
Y =
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
mesh 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/mesh.html
mesh 函数作用是绘制网格 ;
使用 -2 : 0.1 : 2
向量生成
网格矩阵
;
每个
值的计算方式是
;
代码示例 :
% 生成 x 向量
x = -2 : 0.1 : 2;
% 生成 y 向量
y = -2 : 0.1 : 2;
% 生成 X Y 两个矩阵
% 生成了 x-y 坐标轴上的网格
[X, Y] = meshgrid(x, y);
% 生成 Z 矩阵
Z = X .* exp (-X .^ 2 - Y .^ 2);
% 绘制网格
mesh(X, Y, Z);
绘制结果 :
surf 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/surf.html
surf 函数作用是绘制平面 , 给网格填充颜色 ;
使用 -2 : 0.1 : 2
向量生成
网格矩阵
;
每个
值的计算方式是
;
代码示例 :
% 生成 x 向量
x = -2 : 0.1 : 2;
% 生成 y 向量
y = -2 : 0.1 : 2;
% 生成 X Y 两个矩阵
% 生成了 x-y 坐标轴上的网格
[X, Y] = meshgrid(x, y);
% 生成 Z 矩阵
Z = X .* exp (-X .^ 2 - Y .^ 2);
% 绘制平面
surf(X, Y, Z);
绘制结果 :
contour 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/contour.html
contour 函数作用是绘制平面的等高线 , 如果
轴的值相等 , 那么在
坐标系中绘制等高线 ;
使用 -2 : 0.1 : 2
向量生成
网格矩阵
;
每个
值的计算方式是
;
代码示例 :
% 生成 x 向量
x = -2 : 0.1 : 2;
% 生成 y 向量
y = -2 : 0.1 : 2;
% 生成 X Y 两个矩阵
% 生成了 x-y 坐标轴上的网格
[X, Y] = meshgrid(x, y);
% 生成 Z 矩阵
Z = X .* exp (-X .^ 2 - Y .^ 2);
% 绘制等高线
contour(X, Y, Z);
绘制结果 :
代码示例 :
% 生成 x 向量
x = -2 : 0.1 : 2;
% 生成 y 向量
y = -2 : 0.1 : 2;
% 生成 X Y 两个矩阵
% 生成了 x-y 坐标轴上的网格
[X, Y] = meshgrid(x, y);
% 生成 Z 矩阵
Z = X .* exp (-X .^ 2 - Y .^ 2);
% 绘制等高线
[C, h] = contourf(X, Y, Z);
% 标注高度值
clabel(C, h);
执行结果: