扬中网站建设价位,电脑ps软件,wordpress中文转英文,甘肃中高风险地区通常#xff0c;MATLAB中绘制三维曲面图#xff0c;先要生成网格数据#xff0c;再调用mesh函数和surf函数绘制三维曲面。若曲面用含两个自变量的参数方程定义#xff0c;则还可以调用fmesh函数和fsurf函数绘图。若曲面用隐函数定义#xff0c;则可以调用fimplicit3函数绘… 通常MATLAB中绘制三维曲面图先要生成网格数据再调用mesh函数和surf函数绘制三维曲面。若曲面用含两个自变量的参数方程定义则还可以调用fmesh函数和fsurf函数绘图。若曲面用隐函数定义则可以调用fimplicit3函数绘图。
01、三维曲面
1. 产生网格坐标矩阵
在MATLAB中产生二维网格坐标矩阵的方法是 将x方向区间ab分成m份将y方向区间cd 分成n份由各划分点分别作平行于两坐标轴的直线将区域ab×cd分成m×n个小网格生成代表每一个小网格顶点坐标的网格坐标矩阵。例如在xy平面选定一矩形区域如图1所示其左下角顶点的坐标为(2,3)右上角顶点的坐标为(6,8)。然后在x方向分成4份在y方向分成5份由各划分点分别作平行于两坐标轴的直线将区域分成5×4个小矩形总共有6×5个顶点。用矩阵X、Y分别存储每一个网格顶点的x坐标与y坐标矩阵X、Y就是该矩形区域的xy平面网格坐标矩阵。 ■ 图1网格坐标示例在MATLAB中产生平面区域内的网格坐标矩阵有两种方法。 (1) 利用矩阵运算生成。例如生成图5-24中的网格坐标矩阵使用以下命令 (2) 调用meshgrid函数生成二维网格坐标矩阵函数的调用格式如下 其中输入参数x、y为向量输出参数X、Y为矩阵。命令执行后矩阵X的每一行都是向量x行数等于向量y的元素的个数 矩阵Y的每一列都是向量y列数等于向量x的元素的个数。矩阵X和Y相同位置上的元素(XijYij)存储二维空间网格顶点(ij)的坐标。例如生成图1中的网格坐标矩阵也可以使用以下命令 函数参数可以只有一个此时生成的网格坐标矩阵是方阵例如 meshgrid函数也可以用于生成三维网格数据调用格式如下
[X,Y,Z] meshgrid(x,y,z)
其中输入参数x、y、z为向量输出参数X、Y、Z为三维数组。命令执行后数组X、Y和Z的第一维大小和向量x元素的个数相同第二维大小和向量y元素的个数相同第三维大小和向量z元素的个数相同。X、Y和Z相同位置上的元素(XijkYijkZijk)存储三维空间网格顶点(ijk)的坐标。
ndgrid函数用于生成n维网格数据调用格式如下
[X1,X2,...Xn] ndgrid(x1,x2,...xn) 其中输入参数x1、x2、…、xn为向量输出参数X1、X2、…、Xn为n维矩阵。例如 对比前面meshgrid网格数据会发现meshgrid网格数据进行转置即得到ndgrid网格数据。
2. mesh函数和surf函数
MATLAB提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用于绘制三维网格图网格线条有颜色网格线条之间无颜色 surf函数用于绘制三维曲面图网格线条之间的补面用颜色填充。surf函数和mesh函数的调用格式为
mesh(x,y,z,c)
surf(x,y,z,c)
通常输入参数x、y、z是同型矩阵x、y定义网格顶点的xy平面坐标z定义网格顶点的高度。选项c用于指定在不同高度下的补面颜色。c缺省时MATLAB认为cz即颜色的设定值默认正比于图形的高度这样就可以绘制出层次分明的三维图形。当xy是向量时要求x的长度等于矩阵z的列数y的长度等于矩阵z的行数x、y向量元素的组合构成网格顶点的x、y坐标。
【例1】已知 其中x、y的40个值均匀分布在-22范围内绘制三维曲面图。
程序如下
x linspace(-2,2,40);
[xx,yy] meshgrid(x);
zz xx * exp(-(xx^2 yy^2));
mesh(xx,yy,zz);
title(mesh);
xlabel(X);
ylabel(Y);
zlabel(Z);
程序运行结果如图2所示。mesh、surf函数的前两个参数x、y也可以是行向量或列向量所以程序中的mesh函数也可以写成mesh(x,x,zz)。 ■ 图2 三维曲面图
若调用surf、mesh函数时省略前两个输入参数x、y则把z矩阵的第二维下标当作x坐标把z矩阵的第一维下标当作y坐标然后绘制三维曲面图。例如
t 1 : 5;
z [0.5*t;2*t;3*t];
mesh(z);
第二条命令生成的z是一个3×5的矩阵执行mesh(z)命令绘制图形曲面各个顶点的x坐标是z元素的列下标y坐标是z元素的行下标。
此外还有两个和mesh函数功能相似的函数即meshc函数和meshz函数其用法与mesh函数类似不同的是meshc函数还在xy平面上绘制曲面在z轴方向的等高线meshz函数还在xy平面上绘制曲面的底座。surf函数也有两个类似的函数即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。
【例2】在xy平面内选择区域-88×-88利用下列函数绘制4种形式的三维曲面图。 程序如下
[x,y] meshgrid(-8:0.5:8);
z sin(sqrt(x^2y^2))/sqrt(x^2y^2);
subplot(2,2,1);
meshz(x,y,z);
title(meshz(x,y,z));
subplot(2,2,2);
meshc(x,y,z);
title(meshc(x,y,z));
subplot(2,2,3);
surfl(x,y,z);
title(surfl(x,y,z));
subplot(x,y,z);
title(surfc(x,y,z));
程序运行结果如图3所示。 ■ 图3 4种形式的三维曲面图