CIRCSHIFT Circularly Shift an Array

Section: Array Generation and Manipulations

USAGE

Applies a circular shift along each dimension of a given array. The syntax for its use is
   y = circshift(x,shiftvec)

where x is an n-dimensional array, and shiftvec is a vector of integers, each of which specify how much to shift x along the corresponding dimension.

Example

The following examples show some uses of circshift on N-dimensional arrays.
--> x = int32(rand(4,5)*10)
x = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 3  7  3  2  8  
 0  8  0  4  2  
 9  0  5  7  2  
 3  4  9  3  6  
--> circshift(x,[1,0])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 3  4  9  3  6  
 3  7  3  2  8  
 0  8  0  4  2  
 9  0  5  7  2  
--> circshift(x,[0,-1])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 7  3  2  8  3  
 8  0  4  2  0  
 0  5  7  2  9  
 4  9  3  6  3  
--> circshift(x,[2,2])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 7  2  9  0  5  
 3  6  3  4  9  
 2  8  3  7  3  
 4  2  0  8  0  
--> x = int32(rand(4,5,3)*10)
x = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 2  7  6  2  9  
 1  2  2  7  0  
 3  7  1  3  0  
 9  1  7  7  9  
(:,:,2) = 
 
Columns 1 to 5
 4  6  9  9  3  
 0  3  5  0  4  
 4  5  0  2  6  
 9  1  4  0  4  
(:,:,3) = 
 
Columns 1 to 5
 1  5  6  9  1  
 7  9  6  4  6  
 5  2  0  6  8  
 0  8  5  4  3  
--> circshift(x,[1,0,0])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 9  1  7  7  9  
 2  7  6  2  9  
 1  2  2  7  0  
 3  7  1  3  0  
(:,:,2) = 
 
Columns 1 to 5
 9  1  4  0  4  
 4  6  9  9  3  
 0  3  5  0  4  
 4  5  0  2  6  
(:,:,3) = 
 
Columns 1 to 5
 0  8  5  4  3  
 1  5  6  9  1  
 7  9  6  4  6  
 5  2  0  6  8  
--> circshift(x,[0,-1,0])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 7  6  2  9  2  
 2  2  7  0  1  
 7  1  3  0  3  
 1  7  7  9  9  
(:,:,2) = 
 
Columns 1 to 5
 6  9  9  3  4  
 3  5  0  4  0  
 5  0  2  6  4  
 1  4  0  4  9  
(:,:,3) = 
 
Columns 1 to 5
 5  6  9  1  1  
 9  6  4  6  7  
 2  0  6  8  5  
 8  5  4  3  0  
--> circshift(x,[0,0,-1])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 4  6  9  9  3  
 0  3  5  0  4  
 4  5  0  2  6  
 9  1  4  0  4  
(:,:,2) = 
 
Columns 1 to 5
 1  5  6  9  1  
 7  9  6  4  6  
 5  2  0  6  8  
 0  8  5  4  3  
(:,:,3) = 
 
Columns 1 to 5
 2  7  6  2  9  
 1  2  2  7  0  
 3  7  1  3  0  
 9  1  7  7  9  
--> circshift(x,[2,-3,1])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 6  8  5  2  0  
 4  3  0  8  5  
 9  1  1  5  6  
 4  6  7  9  6  
(:,:,2) = 
 
Columns 1 to 5
 3  0  3  7  1  
 7  9  9  1  7  
 2  9  2  7  6  
 7  0  1  2  2  
(:,:,3) = 
 
Columns 1 to 5
 2  6  4  5  0  
 0  4  9  1  4  
 9  3  4  6  9  
 0  4  0  3  5