## TRANSPOSE

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

### 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.

None.

### 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
```

#### 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

Introduced: Original