shiftdim

Shift dimensions.

Syntax

y = shiftdim(x,n)

[y,ns] = shiftdim(x)

Inputs

x
The matrix or string whose elements are to be shifted.
Type: double | complex | char
Dimension: vec | mat | string
n
The number of shifts made to the dimensions of x.
Type: integer
Dimension: integer
  • For n > 0 the shift is to the left and circular.
  • For n < 0 the shift is to the right and non-circular; with -n leading singleton dimensions inserted.
  • When n is omitted, the leading singleton dimensions are removed.

Outputs

y
The shifted result.
ns
The number of leading dimensions removed when n is omitted.

Examples

Shift to the left:

y = shiftdim(reshape([1:24],[2,3,4]), 2)
y = 
slice(:, :, 1) = 
[Matrix] 4 x 2
 1   2
 7   8
13  14
19  20

slice(:, :, 2) = 
[Matrix] 4 x 2
 3   4
 9  10
15  16
21  22

slice(:, :, 3) = 
[Matrix] 4 x 2
 5   6
11  12
17  18
23  24

Shift to the right:

y = shiftdim([1,2,3,4,5]',-1)
y = [Matrix] 1 x 5
1  2  3  4  5