Matlab中生成4D阵列的类网格函数

Matlab中生成4D阵列的类网格函数,matlab,matrix,Matlab,Matrix,我想在matlab中实现一个4维数学函数,但是meshgrid函数最多只能用于3维。对于更多维度,是否有类似的函数?(我不想用于循环)。是的,使用ndgrid扩展了3个以上的维度,但您可以肯定地将其用于2或3个维度meshgrid是ndgrid的特例 然而,我要提到的一个警告是,X和Y坐标在meshgrid和ndgrid之间的排列方式是互换的。具体来说,X在meshgrid中水平遍历,而X在ndgrid中垂直遍历。类似地,Y在meshgrid中垂直遍历,而Y在ndgrid中水平遍历 因此,要获得

我想在matlab中实现一个4维数学函数,但是
meshgrid
函数最多只能用于3维。对于更多维度,是否有类似的函数?(我不想用于循环)。

是的,使用
ndgrid
扩展了3个以上的维度,但您可以肯定地将其用于2或3个维度
meshgrid
ndgrid
的特例

然而,我要提到的一个警告是,
X
Y
坐标在
meshgrid
ndgrid
之间的排列方式是互换的。具体来说,
X
meshgrid
中水平遍历,而
X
ndgrid
中垂直遍历。类似地,
Y
meshgrid
中垂直遍历,而
Y
ndgrid
中水平遍历

因此,要获得2或3维的相同行为,请执行以下操作:

[X,Y] = meshgrid(...)
[Y,X] = ndgrid(...)
或:

对于更高维度,使用
ndgrid
可以保持水平和垂直坐标的相同顺序

更明确地说,这是文档末尾的
ndgrid
注释所说的:

ndgrid
函数类似于
meshgrid
,但是
ndgrid
支持一维到N维,而
meshgrid
仅限于二维和三维。每个函数输出的坐标相同,但前二维中输出阵列的形状不同。对于长度
M
的网格向量
x1gv、x2gv
x3gv
N
P
ndgrid(x1gv,x2gv)
将输出大小为
M
-by-
N
的数组,而
meshgrid(x1gv,x2gv)
将输出大小为
N
-by-
的数组。类似地,
ndgrid(x1gv,x2gv,x3gv)
将输出大小为
M
-by-
N
-by-
P
的数组,而
meshgrid(x1gv,x2gv,x3gv)
输出大小为
N
-by-
M
-by-
P
的数组

[X,Y,Z] = meshgrid(...)
[Y,X,Z] = ndgrid(...)