1、首先,对于一个弛阻廖娓二维数组A,permute(A,[2 1])会把原来的第2维重排到第1维,把原来的第1维变换到第2维。同理,permute(A,[1 2])将对数组毫无影响。
2、而ipermute函数则是反过来的。ipermute(A,[3 1 2])是将A的第1维重排到第3维,溟猫钽吟第2维重排到第1维,第3维重排到第2维。如下图,左下为permute, 右下为ipermute, 图示了三维数组的维度方向。
3、但是,如果维度列表为[3 2 1]这样单调递减序列,则不论使用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