ndgrid
N-D空间中的矩形网格
描述
[
复制网格向量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×611 11 13 3 3 3 3 5 5 5 5 5 5 7 7 7 7 7 7 7 9 9 9 9 11 11 11 11 11 11 13 13 13 13 13 13 13 13 15 15 15 17 17 17 19 19 19 19 19
Y =10×62 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 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 2 4 6 8 10 12
求网格域上的函数值
求函数值并画出曲线
在网格域上
而且 .
为域创建一个值网格。
(X1, X2) = ndgrid (2: .2:2);
求函数在定义域上的值。
Z = X1. * exp(-X1。^ 2 - X2。^ 2);
生成函数的网格图。
网格(X1, X2, Z)
在R2016b和后续版本中,此任务不需要使用ndgrid
.相反,你可以使用以下命令使用隐式展开来构建网格:
x = 2: .2:2;
Z1 = x。”。(* exp () - x”。。^ 2 - x ^ 2);
插入数据
创建一个2-D网格,并在网格上计算一些函数值。在指定值之间插入以优化网格。
创建一个粗糙的网格 范围内 .
(X, Y) = ndgrid (5:0.5:5);
在网格上计算一些函数值并绘制函数图。
f = sin(x ^2) * cos(y ^2);冲浪(X, Y, f)
使用更精细的网格在点之间插值并绘制结果。
(X1, Y1) = ndgrid (5:0.125:5);F = interpn (X, Y, F (X1, Y1,样条的);
冲浪(X1, Y1, F)
输入参数
x1, x2,…,xn
- - - - - -网格向量(作为单独的参数)
向量
网格向量,指定为包含每个维度的网格坐标的向量。网格向量隐式地定义了网格。例如,在2d中:
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:是的
xg
- - - - - -所有维度的网格向量
向量
所有维度的网格向量,指定为包含网格坐标的向量。ndgrid
使用xg
作为每个维度的网格向量。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
复数的支持:是的
输出参数
X1, X2,…,Xn
-全网格表示
数组
完整的网格表示,作为单独的数组返回。对于每个输出数组西
,我
维度包含网格向量的副本西
.
更多关于
之间的转换meshgrid
而且ndgrid
格式
meshgrid
而且ndgrid
使用不同的输出格式创建网格。具体来说,使用这些函数之一创建的网格的前两个维度在与其他网格格式比较时被交换。一些MATLAB®函数在中使用网格meshgrid
格式化,而其他人使用ndgrid
格式,因此通常在两种格式之间转换网格。
您可以使用pagetranspose
(的R2020b)或交换
交换网格数组的前两个维度。例如,创建一个3d网格meshgrid
.
[X, Y, Z] = meshgrid (1:4, 1:3, 1:2);
现在转置每个网格数组的前两个维度,将网格转换为ndgrid
格式化,并将结果与来自的输出进行比较ndgrid
.
Xt = pagetranspose (X);欧美= pagetranspose (Y);Zt型= pagetranspose (Z);[Xn、Yn、锌]= ndgrid (1:4, 1:3, 1:2);isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
符合逻辑的1
使用pagetranspose
相当于在保持其他维度不变的情况下排列前两个维度。您也可以使用交换(X, [2 1 3: ndims (X)))
.
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
线程环境
在后台使用MATLAB®运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
使用注意事项和限制:
一维语法,
X = ndgrid (X)
,返回一个gpuArray
列向量X
它包含输入的元素gpuArray
xgydF4y2Ba
用作一维网格。输入必须是浮点双精度或单精度。
有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
分布式阵列
使用并行计算工具箱™跨集群的组合内存分区大型数组。
使用注意事项和限制:
一维语法,
X = ndgrid (X)
,返回分布式数组列向量X
它包含输入分布式数组的元素xgydF4y2Ba
用作一维网格。输入必须是浮点双精度或单精度。
有关更多信息,请参见运行MATLAB函数与分布式数组(并行计算工具箱).
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。