This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

shiftdim

Shift array dimensions

Syntax

B = shiftdim(A,n)
B = shiftdim(A)
[B,m] = shiftdim(A)

Description

example

B = shiftdim(A,n) shifts the dimensions of an array A by n positions. shiftdim shifts the dimensions to the left when n is a positive integer and to the right when n is a negative integer. For example, if A is a 2-by-3-by-4 array, then shiftdim(A,2) returns a 4-by-2-by-3 array.

B = shiftdim(A) returns an array with the same elements as A but with leading dimensions of length 1 removed.

example

[B,m] = shiftdim(A) also returns the number of dimensions of length 1 that were removed.

Examples

collapse all

Create a 4-by-2-by-3-by-5 array. Shift the dimensions 2 positions to the left, wrapping the first 2 lengths to the last 2 dimensions.

A = rand(4,2,3,5);
B = shiftdim(A,2);
size(B)
ans = 1×4

     3     5     4     2

Shift the dimensions 2 positions to the right, resulting in 2 leading dimensions of length 1. Shifting to the right does not wrap the dimension lengths.

C = shiftdim(A,-2); 
size(C)
ans = 1×6

     1     1     4     2     3     5

Shift the dimensions of an array.

Compute a 5-D array A, and remove the leading dimensions of length 1. The shiftdim function shifts 2 dimensions and returns the 3-D array B.

A = rand(1,1,3,2,4);
[B,nshifts] = shiftdim(A);
nshifts
nshifts = 2
size(B)
ans = 1×3

     3     2     4

Shift the dimensions of B twice to the left.

C = shiftdim(B,2);
size(C)
ans = 1×3

     4     3     2

Shift the dimensions of C once to the right.

D = shiftdim(C,-1); 
size(D)
ans = 1×4

     1     4     3     2

Input Arguments

collapse all

Input array, specified as a vector, matrix, or multidimensional array.

Number of dimension positions to shift, specified as an integer. When n is positive, shiftdim shifts the dimensions to the left, wrapping the leading dimensions to the end. When n is negative, shiftdim shifts the dimensions to the right, padding additional leading dimensions with length 1.

Output Arguments

collapse all

Output array, specified as a vector, matrix, or multidimensional array.

Number of dimensions removed, specified as a non-negative integer. shiftdim removes only leading dimensions of length 1.

Extended Capabilities

Introduced before R2006a