shiftdim - Shift array dimensions - MATLAB (original) (raw)
Syntax
Description
[B](#mw%5F1f3b4325-c8ed-48c1-b066-2b2d8fbd87bc) = shiftdim([A](#mw%5Fbebd5d37-ee00-4fe8-b943-62ed88283e50),[n](#d126e1668768))
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, thenshiftdim(A,2)
returns a 4-by-2-by-3 array.
[B](#mw%5F1f3b4325-c8ed-48c1-b066-2b2d8fbd87bc) = shiftdim([A](#mw%5Fbebd5d37-ee00-4fe8-b943-62ed88283e50))
returns an array with the same elements as A
but with leading dimensions of length 1 removed.
[[B](#mw%5F1f3b4325-c8ed-48c1-b066-2b2d8fbd87bc),[m](#mw%5Fb94339eb-9659-43dd-8745-4178a1e66ea0)] = shiftdim([A](#mw%5Fbebd5d37-ee00-4fe8-b943-62ed88283e50))
also returns the number of dimensions of length 1 that were removed.
Examples
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)
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)
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
Shift the dimensions of B
twice to the left.
C = shiftdim(B,2); size(C)
Shift the dimensions of C
once to the right.
D = shiftdim(C,-1); size(D)
Input Arguments
Input array, specified as a vector, matrix, or multidimensional array.
Number of dimension positions to shift, specified as an integer. Whenn
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
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
Usage notes and limitations:
- The input array
A
cannot be a cell array. - If used, the input argument
n
must be a constant at code generation time. - If you do not specify the input argument
n
, the code generator identifies the first dimension ofA
that is variable size or that has a fixed size greater than 1. If this dimension is variable size at code generation time and is 1 at run time, a run-time error can occur. - If
n
is positive and the last dimension ofA
is variable size at code generation time, this dimension cannot have a size of 1 at run time.
The shiftdim
function fully supports GPU arrays. To run the function on a GPU, specify the input data as a gpuArray (Parallel Computing Toolbox). For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Version History
Introduced before R2006a