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
 6  9  9  3  1  
 3  5  0  4  7  
 5  0  2  6  5  
 1  4  0  4  0  
--> circshift(x,[1,0])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 1  4  0  4  0  
 6  9  9  3  1  
 3  5  0  4  7  
 5  0  2  6  5  
--> circshift(x,[0,-1])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 9  9  3  1  6  
 5  0  4  7  3  
 0  2  6  5  5  
 4  0  4  0  1  
--> circshift(x,[2,2])
ans = 
  <int32>  - size: [4 5]
 
Columns 1 to 5
 6  5  5  0  2  
 4  0  1  4  0  
 3  1  6  9  9  
 4  7  3  5  0  
--> x = int32(rand(4,5,3)*10)
x = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 5  6  9  1  5  
 9  6  4  6  2  
 2  0  6  8  7  
 8  5  4  3  0  
(:,:,2) = 
 
Columns 1 to 5
 1  4  4  9  3  
 3  5  2  7  1  
 1  6  7  6  1  
 9  5  5  5  2  
(:,:,3) = 
 
Columns 1 to 5
 1  1  0  9  0  
 5  7  8  2  5  
 3  8  3  3  6  
 9  4  7  4  2  
--> circshift(x,[1,0,0])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 8  5  4  3  0  
 5  6  9  1  5  
 9  6  4  6  2  
 2  0  6  8  7  
(:,:,2) = 
 
Columns 1 to 5
 9  5  5  5  2  
 1  4  4  9  3  
 3  5  2  7  1  
 1  6  7  6  1  
(:,:,3) = 
 
Columns 1 to 5
 9  4  7  4  2  
 1  1  0  9  0  
 5  7  8  2  5  
 3  8  3  3  6  
--> circshift(x,[0,-1,0])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 6  9  1  5  5  
 6  4  6  2  9  
 0  6  8  7  2  
 5  4  3  0  8  
(:,:,2) = 
 
Columns 1 to 5
 4  4  9  3  1  
 5  2  7  1  3  
 6  7  6  1  1  
 5  5  5  2  9  
(:,:,3) = 
 
Columns 1 to 5
 1  0  9  0  1  
 7  8  2  5  5  
 8  3  3  6  3  
 4  7  4  2  9  
--> circshift(x,[0,0,-1])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 1  4  4  9  3  
 3  5  2  7  1  
 1  6  7  6  1  
 9  5  5  5  2  
(:,:,2) = 
 
Columns 1 to 5
 1  1  0  9  0  
 5  7  8  2  5  
 3  8  3  3  6  
 9  4  7  4  2  
(:,:,3) = 
 
Columns 1 to 5
 5  6  9  1  5  
 9  6  4  6  2  
 2  0  6  8  7  
 8  5  4  3  0  
--> circshift(x,[2,-3,1])
ans = 
  <int32>  - size: [4 5 3]
(:,:,1) = 
 
Columns 1 to 5
 3  6  3  8  3  
 4  2  9  4  7  
 9  0  1  1  0  
 2  5  5  7  8  
(:,:,2) = 
 
Columns 1 to 5
 8  7  2  0  6  
 3  0  8  5  4  
 1  5  5  6  9  
 6  2  9  6  4  
(:,:,3) = 
 
Columns 1 to 5
 6  1  1  6  7  
 5  2  9  5  5  
 9  3  1  4  4  
 7  1  3  5  2