欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )

发布时间:2025/6/17 70 豆豆

文章目录

  • 一、二维网格
    • 1、线图 与 平面图
    • 2、meshgrid 函数生成二维网格
  • 二、绘制网格
    • 1、mesh 函数绘制网格
    • 2、代码示例
  • 三、绘制平面
    • 1、surf 函数绘制平面
    • 2、代码示例
  • 四、绘制等高线
    • 1、contour 函数绘制等高线
    • 2、代码示例
    • 3、绘制彩色等高线并标注高度值





一、二维网格





1、线图 与 平面图


之前使用 plot 和 plot3 绘制的都是线图 , 给定若干个点的向量 , 绘制这些点 , 然后将这些点使用直线连接起来 , 组成了线图 ;

绘制 333 维线图时 , 只需要给定 X,Y,ZX,Y, ZX,Y,Z 三个向量 ( 每个向量都含有 nnn 个元素 ) , 分别是 nnn 个点的 x,y,zx, y , zx,y,z 坐标值 ;

两点之间 , 使用线连接起来即可 ;


平面图形 Surface , 绘制的是一个平面 , 需要给定 X,Y,ZX, Y, ZX,Y,Z 三个值 , 其中 X,Y,ZX, Y, ZX,Y,Z 是矩阵 ;

X,Y,ZX, Y, ZX,Y,Z 都是 m×nm \times nm×n 的矩阵 , 那么 X,YX, YX,Y 就可以决定一个 m×nm \times nm×n 个点组成的平面 , 此时 m×nm \times nm×n 个点的 zzz 轴的值是 ZZZ 矩阵中对应的 m×nm \times nm×n 个值中的一个 ;

平面是按照矩阵网格状进行分布 ;



2、meshgrid 函数生成二维网格


meshgrid 参考文档 : https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html


使用 meshgrid 函数 , 可以产生 X,YX, YX,Y 矩阵的值 , 即产生的是 x−yx -yxy 坐标轴的网格平面 ;


生成二维网格示例 :

% 生成 x 向量 x = -2 : 1 : 2% 生成 y 向量 y = -2 : 1 : 2% 生成 X Y 两个矩阵 % 生成了 x-y 坐标轴上的网格 [X, Y] = meshgrid(x, y)

打印结果 :

>> Untitledx =-2 -1 0 1 2y =-2 -1 0 1 2X =-2 -1 0 1 2-2 -1 0 1 2-2 -1 0 1 2-2 -1 0 1 2-2 -1 0 1 2Y =-2 -2 -2 -2 -2-1 -1 -1 -1 -10 0 0 0 01 1 1 1 12 2 2 2 2>>

XXX 向量

-2 -1 0 1 2

YYY 向量

-2 -1 0 1 2

生成的二维网格 ,

XXX 矩阵 :

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

YYY 矩阵 :

Y =-2 -2 -2 -2 -2-1 -1 -1 -1 -10 0 0 0 01 1 1 1 12 2 2 2 2



二、绘制网格





1、mesh 函数绘制网格


mesh 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/mesh.html

mesh 函数作用是绘制网格 ;



2、代码示例


使用 -2 : 0.1 : 2 向量生成 x,yx,yx,y 网格矩阵 X,YX , YX,Y ;

每个 zzz 值的计算方式是 z=e−x2−y2xz = e^{-x^2 - y^2}xz=ex2y2x ;


代码示例 :

% 生成 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);

绘制结果 :





三、绘制平面





1、surf 函数绘制平面


surf 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/surf.html

surf 函数作用是绘制平面 , 给网格填充颜色 ;



2、代码示例


使用 -2 : 0.1 : 2 向量生成 x,yx,yx,y 网格矩阵 X,YX , YX,Y ;

每个 zzz 值的计算方式是 z=e−x2−y2xz = e^{-x^2 - y^2}xz=ex2y2x ;


代码示例 :

% 生成 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);

绘制结果 :





四、绘制等高线





1、contour 函数绘制等高线


contour 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/contour.html

contour 函数作用是绘制平面的等高线 , 如果 zzz 轴的值相等 , 那么在 x,yx, yx,y 坐标系中绘制等高线 ;



2、代码示例


使用 -2 : 0.1 : 2 向量生成 x,yx,yx,y 网格矩阵 X,YX , YX,Y ;

每个 zzz 值的计算方式是 z=e−x2−y2xz = e^{-x^2 - y^2}xz=ex2y2x ;


代码示例 :

% 生成 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);

绘制结果 :



3、绘制彩色等高线并标注高度值


代码示例 :

% 生成 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);

执行结果:

总结

以上是生活随笔为你收集整理的【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。