The TRANSPOSE function returns the transpose of Array. If an optional permutation vector is provided, the dimensions of Array are rearranged as well.

## Examples

### Example 1

Print a simple array and its transpose by entering:

`; Create an array:`
`A = INDGEN(3,3)`
`TRANSA = TRANSPOSE(A); Print the array and its transpose:`
`PRINT, 'A:'`
`PRINT, A`
`PRINT, 'Transpose of A:'`
`PRINT, TRANSA`

IDL prints:

`A:`
`   0  1  2`
`   3  4  5`
`   6  7  8`
` `
`Transpose of A:`
`   0  3  6`
`   1  4  7`
`   2  5  8`

## Syntax

Result = TRANSPOSE( Array [, P] )

## Return Value

Returns the reflection of the array along a diagonal.

## Arguments

### Array

The array to be transposed.

### P

A vector specifying how the dimensions of Array will be permuted. The elements of P correspond to the dimensions of Array; the ith dimension of the output array is dimension P[i] of the input array. Each element of the vector P must be unique. Dimensions start at zero and can not be repeated.

If P is not present, the order of the dimensions of Array is reversed.

## Keywords

None.

### Example 2

This example demonstrates multi-dimensional transposition:

`; Create the array:`
`A = INDGEN(2, 3, 4); Take the transpose, reversing the order of the indices:`
`B = TRANSPOSE(A); Re-order the dimensions of A, so that the second dimension`
`; becomes the first, the third becomes the second, and the first`
`; becomes the third:`
`C = TRANSPOSE(A, [1, 2, 0]); View the sizes of the three arrays:`
`HELP, A, B, C`

IDL prints:

`A   INT  = Array[2, 3, 4]`
`B   INT  = Array[4, 3, 2]`
`C   INT  = Array[3, 4, 2]`

## Version History

 Original Introduced