说明
示例
二维网格
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标。
x = 1:3; y = 1:5; [X,Y] = meshgrid(x,y)
X = 5×3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y = 5×3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
在二维网格上计算表达式 x2+y2。
X.^2 + Y.^2
ans = 5×3
2 5 10
5 8 13
10 13 18
17 20 25
26 29 34
绘制曲面图
使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格。
x = -2:0.25:2; y = x; [X,Y] = meshgrid(x);
在二维网格上计算并绘制函数 f(x,y)=xe−x2−y2。
F = X.*exp(-X.^2-Y.^2); surf(X,Y,F)
从 R2016b 开始,操作网格之前并不总是需要先创建网格。例如,计算表达式 xe−x2−y2 将隐式扩展向量 x 和 y。有关隐式扩展的详细信息,请参阅数组与矩阵运算。
surf(x,y,x.*exp(-x.^2-(y').^2))
三维网格
在区间 [0,6] 内使用定义的 x、y 和 z 坐标创建三维网格坐标,并计算表达式 x2+y2+z2。
x = 0:2:6; y = 0:1:6; z = 0:3:6; [X,Y,Z] = meshgrid(x,y,z); F = X.^2 + Y.^2 + Z.^2;
确定网格的大小。三个坐标向量具有不同的长度,构成一个网格点矩形框。
gridsize = size(F)
gridsize = 1×3
7 4 3
使用单输入语法,基于 x 中定义的坐标生成均匀分布的三维网格。新网格构成一个网格点正方体。
[X,Y,Z] = meshgrid(x); G = X.^2 + Y.^2 + Z.^2; gridsize = size(G)
gridsize = 1×3
4 4 4
输入参数
输出参数
****************************************************************************************************************************************************************************************************************
-
函数功能
生成绘制3D图形所需的网格数据。在计算机中进行绘图操作时, 往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y)(3,9),(4,9),(5,9);(3,8),(4,8),(5,8);(3,7),(4,7),(5,7);(3,6),(4,6),(5,6);在matlab中我们可以这样描述这个坐标矩阵:把各个点的x坐标独立出来,得:3,4,5;3,4,5;3,4,5;3,4,5;再把各个点的y坐标也独立出来:9,9,9;8,8,8;7,7,7;6,6,6;在Matlab命令窗口中键入type meshgrid可以查看该函数的源代码(由此可以理解meshgrid的算法思想), 键入doc meshgrid或者help meshgrid可以获得帮助文档。语法
[X,Y] = meshgrid(x,y)解释:输出X的每一行的数值都是复制的x的值;输出Y的每一列的数值都是复制的y的值。[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图