在4D中复制和置换

时间:2013-06-03 19:36:00

标签: matlab multidimensional-array permutation vectorization

允许X1X2X3X4为大小为[1xN1][1xN2][1xN3]的行向量,分别为[1xN4]。我想复制并旋转这些行向量,以获得4个对应的4D数组A1A2A3A4,其大小为[N1xN2xN3xN4]X1对应1st的{​​{1}}维度,A1对应X2的{​​{1}}维度,2nd对应A2 } X3的维度,3rd对应A3的{​​{1}}维度。例如,我可以获得X44th,如下所示

A4

A1可以使用以下“业余”代码获得

A2

对于A1=repmat(X1',[1 N2 N3 N4]); A2=repmat(X2,[N1 1 N3 N4]); ,我不知道该怎么做。之后,我想旋转这些数组以获得A3数组。你对此有什么想法吗?提前感谢您的帮助。

Tuan

1 个答案:

答案 0 :(得分:1)

你看过ndgrid吗?

[A2 A1 A3 A4] = ndgrid(x2, x1, x3, x4);

请注意A1A2根据x2x1的排序方式,因为ndgridmeshgrid之间的功能略有不同