介绍MATLAB中的permute和ipermute函数,它们可以对高维数组的维度进行重排。对于二维数组,和转置相同。
工具/原料
MATLAB2016a
方法/步骤
1、首先,对于一个弛阻廖娓二维数组A,permute(A,[21])会把原来的第2维重排到第1维,把原来的第1维变换到第2维。同理,permute(A,[12])将对数组毫无影响。
2、而ipermute函数则是反过来的。ipermute(A,[312])是将A的第1维重堡盈耙楞排到第3维,溟猫钽吟第2维重排到第1维,第3维重排到第2维。如下图,左下为permute,右下为ipermute,图示了三维数组的维度方向。
3、但是,如果维度列表为[321]这样单调递减序列,则不论使用permute还是ipermute结果都相同,如图。
4、二维数组同理,高维亦如此。此时不论permute还是ipermute,都会颠倒维度1和n,2和n-1,3和n-2...
5、使用同一个维度列表进行permute再ipermute,可以将数组复原。如图,B=permute(A,[2,3,1]),C=permute(B,[2,3,1]),则C=A