scipy.linalg.

diagsvd#

scipy.linalg.diagsvd(s, M, N)[source]#

根据奇异值和大小 M, N 构建 SVD 中的 sigma 矩阵。

文档编写时假设数组参数具有指定的“核心(core)”形状。但是,此函数的数组参数可以在核心形状之前添加额外的“批次(batch)”维度。在这种情况下,数组被视为低维切片的批次;详情请参阅 批量线性运算。请注意,不支持零大小批次的调用,否则将引发 ValueError

参数:
s(M,) 或 (N,) array_like

奇异值

Mint

奇异值 s 所属矩阵的大小。

Nint

奇异值 s 所属矩阵的大小。

返回:
S(M, N) ndarray

奇异值分解中的 S 矩阵

另请参阅

svd

矩阵的奇异值分解

svdvals

计算矩阵的奇异值。

示例

>>> import numpy as np
>>> from scipy.linalg import diagsvd
>>> vals = np.array([1, 2, 3])  # The array representing the computed svd
>>> diagsvd(vals, 3, 4)
array([[1, 0, 0, 0],
       [0, 2, 0, 0],
       [0, 0, 3, 0]])
>>> diagsvd(vals, 4, 3)
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3],
       [0, 0, 0]])