本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

meshgrid

二维和三维网格

说明

示例

[X,Y] = meshgrid(x,y) 基于向量 xy 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 XY 表示的网格有 length(y) 个行和 length(x) 个列。

示例

[X,Y] = meshgrid(x)[X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。

示例

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 xyz 定义的三维网格坐标。XYZ 表示的网格的大小为 length(y)×length(x)×length(z)

示例

[X,Y,Z] = meshgrid(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
     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 将隐式扩展向量 xy。有关隐式扩展的详细信息,请参阅数组与矩阵运算

surf(x,y,x.*exp(-x.^2-(y').^2))

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

输入参数

全部折叠

点的 x 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

点的 y 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

点的 z 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

全部折叠

网格上的 x 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

网格上的 y 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

网格上的 z 坐标,以三维数组形式返回。

提示

  • 有关创建多维网格的更多信息,请参阅网格表示

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

在 R2006a 之前推出