无法在matlab中使用permute nd数组

时间:2018-01-11 03:58:09

标签: matlab multidimensional-array transpose

X是4d大小的数组--50000x3x32x32。我想将4d数组转换为50000x32x32x3。

Y = permute(X, [1 4 2 3]);

但是,Y的尺寸仍然是50000x32x3x32。但它应该50000x32x32x3。有人可以帮我解决这里的问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

以下是online documentation

的定义
  

B = permute(A,order)重新排列A的维度,使它们按照向量顺序指定的顺序。

我们可以使用size来获取数组的维度:

S = size(X)

S =

[50000 3 32 32]

我们想重新排序维度向量,使其成为[50000 32 32 3]。然后我们应该将订单设置为[1 3 4 2]

order = [1 3 4 2];
S_result = S(order)

S_result =
[50000 32 32 3]