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

## Examples

See Additional Examples for more information on using TRANSPOSE.

### 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 *i*th 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.

## Additional Examples

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