语法
[[X,Y] = meshgrid(x,y)](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#d120e727636)[[X,Y] = meshgrid(x)](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#d120e727677)[[X,Y,Z] = meshgrid(x,y,z)](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#d120e727703)[[X,Y,Z] = meshgrid(x)](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#d120e727747)
说明
示例[[X](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-X),[Y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Y)] = meshgrid([x](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-x),[y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-y)) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
示例[[X](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-X),[Y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Y)] = meshgrid([x](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-x)) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。
示例[[X](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-X),[Y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Y),[Z](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Z)] = meshgrid([x](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-x),[y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-y),[z](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-z)) 返回由向量 x、y 和 z 定义的三维网格坐标。X、Y 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)。
示例[[X](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-X),[Y](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Y),[Z](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-Z)] = meshgrid([x](https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html#bvblp7l-x)) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标。
示例
二维网格
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标。
x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X = 5×3
1 2 3<br /> 1 2 3<br /> 1 2 3<br /> 1 2 3<br /> 1 2 3
Y = 5×3
1 1 1<br /> 2 2 2<br /> 3 3 3<br /> 4 4 4<br /> 5 5 5
在二维网格上计算表达式 _x_2+_y_2。
X.^2 + Y.^2
ans = 5×3
2 5 10<br /> 5 8 13<br /> 10 13 18<br /> 17 20 25<br /> 26 29 34
绘制曲面图
使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格。
x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
在二维网格上计算并绘制函数 f(x,y)=x__e−x_2−_y_2。
F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)
从 R2016b 开始,操作网格之前并不总是需要先创建网格。例如,计算表达式 _x__e−_x_2−_y_2 将隐式扩展向量 x 和 y。
surf(x,y,x.*exp(-x.^2-(y’).^2))
三维网格
在区间 [0,6] 内使用定义的 x、y 和 z 坐标创建三维网格坐标,并计算表达式 x_2+_y_2+_z_2。
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<br />使用单输入语法,基于 `x` 中定义的坐标生成均匀分布的三维网格。新网格构成一个网格点正方体。<br />[X,Y,Z] = meshgrid(x);<br />G = X.^2 + Y.^2 + Z.^2;<br />gridsize = size(G)<br />gridsize = _1×3_4 4 4
输入参数
x - 点的 x 坐标
向量
点的 x 坐标,指定为向量。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
y - 点的 y 坐标
向量
点的 y 坐标,指定为向量。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
z - 点的 z 坐标
向量
点的 z 坐标,指定为向量。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
输出参数
X - 网格上的 x 坐标
二维或三维数组
网格上的 x 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。
Y - 网格上的 y 坐标
二维或三维数组
网格上的 y 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。
Z - 网格上的 z 坐标
三维数组
网格上的 z 坐标,以三维数组形式返回。
