在Matlab中,我有5D网格X,其尺寸长度为n1,n2,n3,n4,n5。我将前三个维度点固定在x1,x2,x3并考虑X(x1,x2,x3,,)。现在,我想将其转换为n4倍n5向量,以便可以将其与另一个n4倍n5向量相乘。我怎样才能做到这一点?
另外,是否有一种直接进行乘法的方法,而无需先编写将网格转换为矢量的步骤?
如果这是逐元素乘法,并且说Y
n4 * n5向量是:
A=bsxfun(@times,reshape(X,n1,n2,n3,[]),permute(Y(:),[4,3,2,1])));
将为您提供这种相乘的结果,其中A
是长度为n1,n2,n3,n4 * n5的4D数组。
该函数reshape
用于将X
5D转换为4D,该函数permute
用于将信息“推”Y
到第4维,以使用进行乘法bsxfun
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句