matlab三维绘图

本文介绍了三维绘图的基本概念,包括参数方程和三个变量的变化,重点讲解了plot3、mesh、surf和contour函数的用法,以及如何通过x,y网格数据创建网格、曲面和等高线图。实例演示了如何使用MATLAB中的这些函数并调整透明度。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

三维绘图即包含三个变量,通常分为两种:

1)一个独立变量t,两外两个变量x,y随t变化。比如曲线的参数方程描述

2)两个独立变量x,y,第三个变量z随x,y变化。比如z=x^2+y^2

三维绘图函数主要有plot3、mesh、surf、contour,此外还有一些辅助函数meshgrid、alpha等

 1.plot3

plot3主要用于三维线绘图,和plot基本一样,区别就是plot3每个点由x,y,z决定,而plot每个点由x,y决定。

t=0:0.1:10;
x=cos(2*t);
y=sin(2*t);
plot3(x,y,t);

2.mesh、surf、contour

mesh、surf、contour分别用于三维曲面、网格和等高线绘

函数名说明
mesh(X,Y,Z)创建网格或线框绘图。X,Y,Z均为2维数据。
surf(X,Y,Z)创建曲面绘图。X,Y,Z均为2维数据。
contour(X,Y,Z)创建等高线绘图。X,Y,Z均为2维数据。

这里需要说下x,y,z。以z=x^2+y^2为例,如果x取-1,0,1三个数,y取-2,-1,0,1,2 五个数,z根据x,y取值计算。

对于上述三个作图函数,X,Y,Z为5*3矩阵数据,矩阵的行数由y的取值个数决定,矩阵的列数由x的取值个数决定。(此处的X,Y,Z不是上面曲线方程的x,y,z,是上面三个作图函数的输入)

X每一列相同,并且包含-1,0,1三个取值

    -1     0     1
    -1     0     1
    -1     0     1
    -1     0     1
    -1     0     1

Y每一行相同,并且包含-2,-1,0,1,1五个取值

    -2    -2    -2
    -1    -1    -1
     0     0     0
     1     1     1
     2     2     2

Z根据z=x^2+y^2,遍历x,y取值计算即可,同样为5*3矩阵

     5     4     5
     2     1     2
     1     0     1
     2     1     2
     5     4     5

此时我们将X,Y,Z作为surf,mesh,contour输入作图。

代码如下:代码中我们使用了meshgrid函数,由x,y(向量)得到X,Y(二维矩阵),这个过程自己编程得到也是可以的,用循环或者矩阵赋值repmat都可以(注释掉了的部分)。

x=-1:1:1;
y=-2:1:2;
[X,Y]=meshgrid(x,y);
% X=repmat(x,length(y),1);
% Y=repmat(y',1,length(x));
Z=X.^2+Y.^2;
figure(1)
subplot(311)
surf(X,Y,Z);
title('网格绘图')
subplot(312)
mesh(X,Y,Z);
title('曲面绘图')
subplot(313)
contour(X,Y,Z);
title('等高线绘图')

结果如下

最后有一个alpha(value)函数用来调整透明度,value在0-1之间,value为0为全透明,为1完全不透明。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值