permute dimensions of an Array - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Low-level Manipulation : Matrices, Vectors, and Arrays : ArrayTools : ArrayTools/Permute

ArrayTools[Permute] - permute dimensions of an Array

ArrayTools[PermuteInverse] - inverse permute dimensions of an Array

Calling Sequence

Permute(A, order)

PermuteInverse(A, order)




Matrix, Vector, or Array



list; permutation order



The Permute command rearranges the dimensions of A. The second argument, order is a list containing a permutation of the positive integers from 1 to n, such that dimension k becomes dimension order[k]. For example, if A is 10x20x5x8 then B=Permute(A,[3,4,1,2]) is 5x8x10x20.


The PermuteInverse will produce an Array, B, such that Permute(B,order) will generate A.


Unlike ArrayTools:-Reshape, Permute preserves the indices of the input such that A[index]=B[permuted index]. However, the underlying order of the input must be changed for this to take place, and therefore Permute is much more expensive than Reshape for large Arrays.


There can be more dimensions in the output than the input.  Additional dimensions will be assumed to be singletons.


These functions are part of the ArrayTools package, so they can be used in the short form Permute(..) or PermuteInverse(..) only after executing the command with(ArrayTools). However, it can always be accessed through the long form of the command by using ArrayTools[Permute](..) or ArrayTools[PermuteInverse](..), respectively.









See Also

ArrayTools, ArrayTools[Reshape]

Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam