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

# hankel

scipy.linalg.hankel(c, r=None)

  Construct a Hankel matrix.

  The Hankel matrix has constant anti-diagonals, with c as its first column and r as its last row. If the first element of r differs from the last element of c, the first element of r is replaced by the last element of c to ensure that anti-diagonals remain constant. If r is not given, then r = zeros_like(c) is assumed.

  Parameters:
    c array_like

      First column of the matrix.

    r array_like, optional

      Last row of the matrix. If None, `r = zeros_like(c)` is assumed. r[0] is ignored; the last row of the returned matrix is `[c[-1], r[1:]]`.

      Warning

      Beginning in SciPy 1.19, multidimensional input will be treated as a batch, not `ravel`ed. To preserve the existing behavior, `ravel` arguments before passing them to `toeplitz`.

  Returns:
    A(len(c), len(r)) ndarray

      The Hankel matrix. Dtype is the same as `(c[0] + r[0]).dtype`.

  See also

  `toeplitz`

    Toeplitz matrix

  `circulant`

    circulant matrix

  Examples

      >>> from scipy.linalg import hankel
      >>> hankel([1, 17, 99])
      array([[ 1, 17, 99],
             [17, 99,  0],
             [99,  0,  0]])
      >>> hankel([1,2,3,4], [4,7,7,8,9])
      array([[1, 2, 3, 4, 7],
             [2, 3, 4, 7, 7],
             [3, 4, 7, 7, 8],
             [4, 7, 7, 8, 9]])