语法

[[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)) 基于向量 xy 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 XY 表示的网格有 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)) 返回由向量 xyz 定义的三维网格坐标。XYZ 表示的网格的大小为 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. 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 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

  1. 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__ex_2−_y_2。
F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)
Numpy中的meshgrid()函数 - 图1
从 R2016b 开始,操作网格之前并不总是需要先创建网格。例如,计算表达式 _x__e
−_x_2−_y_2 将隐式扩展向量 xy
surf(x,y,x.*exp(-x.^2-(y’).^2))
Numpy中的meshgrid()函数 - 图2

三维网格

在区间 [0,6] 内使用定义的 xyz 坐标创建三维网格坐标,并计算表达式 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

  1. 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_
  2. 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 坐标,以三维数组形式返回。