Skip to main content
`Ctrl`+`K`
scipy.linalg.

# circulant

scipy.linalg.circulant(c)

  Construct a circulant matrix.

  Array argument(s) of this function may have additional “batch” dimensions prepended to the core shape. In this case, the array is treated as a batch of lower-dimensional slices; see Batched Linear Operations for details.

  Parameters:
    c(…, N,) array_like

      The first column(s) of the matrix. Multidimensional arrays are treated as a batch: each slice along the last axis is the first column of an output matrix.

  Returns:
    A(…, N, N) ndarray

      A circulant matrix whose first column is given by c. For batch input, each slice of shape `(N, N)` along the last two dimensions of the output corresponds with a slice of shape `(N,)` along the last dimension of the input.

  See also

  `toeplitz`

    Toeplitz matrix

  `hankel`

    Hankel matrix

  `solve_circulant`

    Solve a circulant system.

  Notes

  Added in version 0.8.0.

  Examples

      >>> from scipy.linalg import circulant
      >>> circulant([1, 2, 3])
      array([[1, 3, 2],
             [2, 1, 3],
             [3, 2, 1]])

      >>> circulant([[1, 2, 3], [4, 5, 6]])
      array([[[1, 3, 2],
              [2, 1, 3],
              [3, 2, 1]],
             [[4, 6, 5],
              [5, 4, 6],
              [6, 5, 4]]])