Matlab中生成4D阵列的类网格函数
我想在matlab中实现一个4维数学函数,但是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中水平遍历 因此,要获得
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(...)