在python中设置svd算法的维度

问题描述 投票:0回答:1

svd公式:A ≈ UΣV*我使用numpy.linalg.svd来运行svd算法。我想设置矩阵的维度。

例如:A=3*5维度,运行numpy.linalg.svd,U=3*3维度,Σ=3*1维度,V*=5*5维度。

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

python numpy scipy svd
1个回答
1
投票

如果A3 x 5矩阵,那么它的排名最多为3.因此A的SVD包含最多3个奇异值。请注意,在上面的示例中,奇异值存储为向量而不是对角矩阵。通常这意味着您可以在底部用零填充矩阵。由于完整的S矩阵在对角线上包含3个值,然后是其余的0(在您的情况下,它将是64x64,具有3个非零值),V的底行和U的右行根本不会相互作用,并且可以设置你想要的任何东西。

请记住,这不再是A的SVD,而是矩阵的浓缩SVD增加了大量的0。

© www.soinside.com 2019 - 2024. All rights reserved.