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
创建一个矩形网格,并计算网格上的函数值。在指定的值之间插值以细化网格。
为 创建一个粗网格,其中 的范围是 , 的范围是 。
[X,Y] = ndgrid(-6:0.5:6,-3:0.5:3);
计算在网格中定义的位置上的函数值。然后,使用曲面图可视化该函数。从 R2016b 开始,您也可以对此任务使用隐式扩展。
f = sin(X.^2) .* cos(Y.^2); surf(Y,X,f)
在更精细的网格 (Xq,Yq)
上的点之间进行插值。然后,使用曲面图可视化插值。
[Xq,Yq] = ndgrid(-6:0.125:6,-3:0.125:3);
F = interpn(X,Y,f,Xq,Yq,"spline");
surf(Yq,Xq,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
的副本。
详细信息
meshgrid
和 ndgrid
使用不同的输出格式创建网格。具体来说,使用这些函数之一创建的网格的前两个维度在与另一种网格格式进行比较时会发生交换。一些 MATLAB® 函数使用 meshgrid
格式的网格,而另一些函数使用 ndgrid
格式,因此在这两种格式之间转换网格是很常见的。
您可以使用 pagetranspose
(从 R2020b 开始)或 permute
在这些网格格式之间进行转换,以交换网格数组的前两个维度。例如,用 meshgrid
创建一个三维网格。
[X,Y,Z] = meshgrid(1:4,1:3,1:2);
现在转置每个网格数组的前两个维度以将网格转换为 ndgrid
格式,并将结果与 ndgrid
的输出进行比较。
Xt = pagetranspose(X); Yt = pagetranspose(Y); Zt = pagetranspose(Z); [Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2); isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans = logical 1
使用 pagetranspose
等效于置换前两个维度,而让其他维度保持不变。您也可以使用 permute(X,[2 1 3:ndims(X)])
执行此运算。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
ndgrid
函数支持 GPU 数组输入,但有以下用法说明和限制:
一维语法
X = ndgrid(x)
返回gpuArray
列向量X
,其中包含输入gpuArray
x
的元素以用作一维网格。输入必须是浮点双精度或单精度值。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
用法说明和限制:
一维语法
X = ndgrid(x)
返回分布式数组列向量X
,其中包含输入分布式数组x
的元素以用作一维网格。输入必须是浮点双精度或单精度值。
有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)