使用MATLAB进行三维空间绘图
三维图具有直观、立体的空间形象,容易使人形成总体的比较具体的三维印象,接近于现实.所以 对某些复杂的函数和数据集合,观看三维空间图片比起二维平面更易于理解,下面我们来看看matlab是怎么实现三维空间绘图的。
一个入门例程
为了现有一个直观的印象,先看一个小小的例程:
clear;
x=-10:.02:10;
y=x;
Z=(x).^2+(y).^2;
subplot(1,2,1);
plot3(x,y,Z);
grid on;
subplot(1,2,2);
[xx,yy]=meshgrid(x,y);
ZZ=(xx).^2+(yy).^2;
mesh(xx,yy,ZZ);
运行效果图:
matlab中的mesh()函数
mesh函数用来绘制由线条框构成的曲面。格式为:
mesh(X,Y,Z)
在X、Y、Z三个参数中,Z通常是X,Y的函数,即Z(X,Y),函数功能就是生成由X,Y和Z指定的网格图,该网格图为三维曲面,有实色边颜色,无面颜色
matlab中的meshgrid()函数
meshgrid是MATLAB(一款应用软件)中用于生成网格采样点的函数,功能是
生成绘制3D图形所需的网格数据。在电脑进行绘图操作时, 需要大量的数据采样点,然后根据这些采样点来绘制出整个图形。在进行3D绘图时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y),该函数在使用MATLAB进行3D图形绘制方面有广泛应用。
matlab中的plot3函数
plot3函数是matlab中的 3-D line绘图函数,有多种参数表现形式:
plot3(X,Y,Z)
plot3(X,Y,Z,LineSpec) 使用指定的线型、标记和颜色创建绘图
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
plot3(tbl,xvar,yvar,zvar)
等等,需要的话可以参与matlab官方文档。plot3(X,Y,Z) 绘制三维空间中的由线段连接的一组坐标,请将 X、Y、Z 指定为相同长度的向量。
例程代码解释
在上面例程中,
x=-10:.02:10;
x为取值范围-10到10,步长0.02的一组向量
y值范围和x相同,方向正交。
[xx,yy]=meshgrid(x,y);
这里meshgrid(x,y)的作用是分别产生以向量x为行,向量y为列的两个大小相同的矩阵,其中x的行是从-10开始到10,每间隔0.02记下一个数据,并把这些数据集成矩阵X;同理y的列则是从-10到10,每间隔0.02记下一个数据,并集成为阵Y。两者的网格数据合并数据集即[xx,yy]。