前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )

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

作者头像
韩曙亮
发布2023-03-29 10:17:55
5K0
发布2023-03-29 10:17:55
举报

文章目录

一、二维网格


1、线图 与 平面图

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

绘制

3

维线图时 , 只需要给定

X,Y, Z

三个向量 ( 每个向量都含有

n

个元素 ) , 分别是

n

个点的

x, y , z

坐标值 ;

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

平面图形 Surface , 绘制的是一个平面 , 需要给定

X, Y, Z

三个值 , 其中

X, Y, Z

是矩阵 ;

X, Y, Z

都是

m \times n

的矩阵 , 那么

X, Y

就可以决定一个

m \times n

个点组成的平面 , 此时

m \times n

个点的

z

轴的值是

Z

矩阵中对应的

m \times n

个值中的一个 ;

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

2、meshgrid 函数生成二维网格

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

使用 meshgrid 函数 , 可以产生

X, Y

矩阵的值 , 即产生的是

x -y

坐标轴的网格平面 ;

生成二维网格示例 :

代码语言:javascript
复制
% 生成 x 向量
x = -2 : 1 : 2

% 生成 y 向量
y = -2 : 1 : 2

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

打印结果 :

代码语言:javascript
复制
>> 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

>> 
X

向量

代码语言:javascript
复制
-2    -1     0     1     2

Y

向量

代码语言:javascript
复制
-2    -1     0     1     2

生成的二维网格 ,

X

矩阵 :

代码语言:javascript
复制
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

矩阵 :

代码语言:javascript
复制
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

二、绘制网格


1、mesh 函数绘制网格

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

mesh 函数作用是绘制网格 ;

2、代码示例

使用 -2 : 0.1 : 2 向量生成

x,y

网格矩阵

X , Y

;

每个

z

值的计算方式是

z = e^{-x^2 - y^2}x

;

代码示例 :

代码语言:javascript
复制
% 生成 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,y

网格矩阵

X , Y

;

每个

z

值的计算方式是

z = e^{-x^2 - y^2}x

;

代码示例 :

代码语言:javascript
复制
% 生成 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 函数作用是绘制平面的等高线 , 如果

z

轴的值相等 , 那么在

x, y

坐标系中绘制等高线 ;

2、代码示例

使用 -2 : 0.1 : 2 向量生成

x,y

网格矩阵

X , Y

;

每个

z

值的计算方式是

z = e^{-x^2 - y^2}x

;

代码示例 :

代码语言:javascript
复制
% 生成 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、绘制彩色等高线并标注高度值

代码示例 :

代码语言:javascript
复制
% 生成 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);

执行结果:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、二维网格
    • 1、线图 与 平面图
      • 2、meshgrid 函数生成二维网格
      • 二、绘制网格
        • 1、mesh 函数绘制网格
          • 2、代码示例
          • 三、绘制平面
            • 1、surf 函数绘制平面
              • 2、代码示例
              • 四、绘制等高线
                • 1、contour 函数绘制等高线
                  • 2、代码示例
                    • 3、绘制彩色等高线并标注高度值
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档