scipy.linalg.
toeplitz#
- scipy.linalg.toeplitz(c, r=None)[源]#
构造一个 Toeplitz 矩阵。
Toeplitz 矩阵的对角线元素保持不变,其中 c 是其第一列,r 是其第一行。如果未给出 r,则假定
r == conjugate(c)
。- 参数:
- c类数组
矩阵的第一列。
- r类数组,可选
矩阵的第一行。如果为 None,则假定
r = conjugate(c)
;在这种情况下,如果 c[0] 是实数,结果将是一个 Hermitian 矩阵。r[0] 被忽略;返回矩阵的第一行是[c[0], r[1:]]
。警告
从 SciPy 1.17 开始,多维输入将被视为批次,而不是展平 (
ravel
) 的。为了保留现有行为,请在将参数传递给toeplitz
之前将其展平 (ravel
)。
- 返回:
- A(len(c), len(r)) ndarray
Toeplitz 矩阵。数据类型 (Dtype) 与
(c[0] + r[0]).dtype
相同。
另请参阅
circulant
循环矩阵
hankel
Hankel 矩阵
solve_toeplitz
求解 Toeplitz 系统。
备注
当 c 或 r 为标量,或当 c 为复数且 r 为 None 时的行为,已在 0.8.0 版本中更改。以前版本中的行为未被文档化,且不再受支持。
示例
>>> from scipy.linalg import toeplitz >>> toeplitz([1,2,3], [1,4,5,6]) array([[1, 4, 5, 6], [2, 1, 4, 5], [3, 2, 1, 4]]) >>> toeplitz([1.0, 2+3j, 4-1j]) array([[ 1.+0.j, 2.-3.j, 4.+1.j], [ 2.+3.j, 1.+0.j, 2.-3.j], [ 4.-1.j, 2.+3.j, 1.+0.j]])