python中svd算法的集维数

python中svd算法的集维数,python,numpy,scipy,svd,Python,Numpy,Scipy,Svd,奇异值分解公式:A≈ U∑V* 我使用numpy.linalg.svd来运行svd算法。 我想设置矩阵的维数 例如:A=3*5dimension,运行numpy.linalg.svd后,U=3*3dimension,∑=3*1dimension,V*=5*5dimension 我需要设置特定的维度,比如U=3*64dimension,V*=64*5dimension。但是在numpy.linalg.svd中似乎没有可选的维度参数可以设置。如果A是3 x 5矩阵,那么它的秩最多为3。因此,A的奇异

奇异值分解公式:
A≈ U∑V*
我使用numpy.linalg.svd来运行svd算法。 我想设置矩阵的维数

例如:
A=3*5
dimension,运行numpy.linalg.svd后,
U=3*3
dimension,
∑=3*1
dimension,
V*=5*5
dimension


我需要设置特定的维度,比如
U=3*64
dimension,
V*=64*5
dimension。但是在numpy.linalg.svd中似乎没有可选的维度参数可以设置。

如果
A
3 x 5
矩阵,那么它的秩最多为3。因此,
A
的奇异值分解最多包含3个奇异值。请注意,在上面的示例中,奇异值存储为向量,而不是对角矩阵。简单地说,这意味着您可以在底部用零填充矩阵。由于完整的S矩阵在对角线上包含3个值,后跟其余的0(在您的情况下,它将是64x64,带有3个非零值),因此V的底部行和U的右侧行根本不相互作用,可以设置为任何您想要的值

请记住,这不再是A的奇异值分解,而是矩阵的压缩奇异值分解加上大量的0。

阅读