fftshift is an R equivalent to the Matlab function fftshift applied on matrices. For more information about fftshift see the Matlab documentation.

fftshift(inputMatrix, dimension = -1)

Arguments

inputMatrix

Matrix to be swapped.

dimension

Which swap should be performed?

  • 1: swap halves along the rows.

  • 2: swap halves along the columns.

  • -1: swap first quadrant with third and second quadrant with fourth.

Value

Swapped matrix.

Details

It is possible to swap the halves or the quadrants of the input matrix. Halves can be swapped along the rows (dimension = 1) or along the columns (dimension = 2). When swapping the quadrants, fftshift swaps the first quadrant with the third and the second quadrant with the fourth (dimension = -1).

Examples

set.seed(987) sampleMat <- matrix(sample(1:10, size = 25, replace = TRUE), nrow = 5) # Swap halves along the rows: fftshift(sampleMat, dimension = 1)
#> [,1] [,2] [,3] [,4] [,5] #> [1,] 6 9 4 1 8 #> [2,] 9 8 2 8 10 #> [3,] 5 3 2 7 8 #> [4,] 10 5 4 2 6 #> [5,] 7 4 2 10 2
# Swap halves along the columns: fftshift(sampleMat, dimension = 2)
#> [,1] [,2] [,3] [,4] [,5] #> [1,] 7 8 5 3 2 #> [2,] 2 6 10 5 4 #> [3,] 10 2 7 4 2 #> [4,] 1 8 6 9 4 #> [5,] 8 10 9 8 2
# Swap first quadrant with third and second quadrant with fourth: fftshift(sampleMat, dimension = -1)
#> [,1] [,2] [,3] [,4] [,5] #> [1,] 1 8 6 9 4 #> [2,] 8 10 9 8 2 #> [3,] 7 8 5 3 2 #> [4,] 2 6 10 5 4 #> [5,] 10 2 7 4 2