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

ndgrid

N 维空间中的矩形网格

说明

示例

[X1,X2,...,Xn] = ndgrid(x1,x2,...,xn) 复制网格向量 x1,x2,...,xn 以生成 n 维满网格。

示例

[X1,X2,...,Xn] = ndgrid(xg) 指定对所有维度使用单一网格向量 xg。您指定的输出参数的数目决定输出的维度 n

示例

全部折叠

根据向量 [1 3 5 7 9 11 13 15 17 19][2 4 6 8 10 12] 创建一个二维网格。

[X,Y] = ndgrid(1:2:19,2:2:12)
X = 10×6

     1     1     1     1     1     1
     3     3     3     3     3     3
     5     5     5     5     5     5
     7     7     7     7     7     7
     9     9     9     9     9     9
    11    11    11    11    11    11
    13    13    13    13    13    13
    15    15    15    15    15    15
    17    17    17    17    17    17
    19    19    19    19    19    19

Y = 10×6

     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12
     2     4     6     8    10    12

计算并绘制函数

x1e-x12-x22

在网格域

-2<x1<2-2<x2<2

创建一个由域值构成的网格。

[X1,X2] = ndgrid(-2:.2:2);

在域上计算函数。

Z = X1 .* exp(-X1.^2 - X2.^2);

生成函数的网格图。

mesh(X1,X2,Z)

在 R2016b 及更高版本中,此任务不需要使用 ndgrid。您可以对这些命令使用隐式扩展来构建网格:

x = -2:.2:2;

Z1 = x.' .* exp(-(x.').^2 - x.^2);

创建一个二维网格并计算网格上的一些函数值。在指定的值之间插值以细化网格。

在范围 [-5,5] 内创建 (x,y) 粗网格。

[X,Y] = ndgrid(-5:0.5:5);

计算网格上的一些函数值并绘制函数图。

f = sin(X.^2) * cos(Y.^2);
surf(X,Y,f)

使用更精细的网格在点之间插值,并绘制结果图。

[X1,Y1] = ndgrid(-5:0.125:5);
F = interpn(X,Y,f,X1,Y1,'spline');
surf(X1,Y1,F)

输入参数

全部折叠

网格向量,指定为包含每个维度的网格坐标的向量。网格向量隐式定义了网格。例如在二维空间中:

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

所有维度的网格向量,指定为包含网格坐标的向量。ndgrid 使用 xg 作为每个维度的网格向量。

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

输出参数

全部折叠

完整网格表示,以单独的数组形式返回。对于每个输出数组 Xi,第 i 维包含网格向量 xi 的副本。

提示

  • ndgrid 函数与 meshgrid 函数相似。不同之处是,ndgrid 支持一维到 N 维,而 meshgrid 仅支持二维和三维。

扩展功能

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

在 R2006a 之前推出