【发布时间】:2021-07-01 18:18:13
【问题描述】:
我有一个矩阵 A,我需要计算它的 SVD,将最后一个奇异值设置为 0,然后在 numpy 中重新组合(SVD 清理)。 我这样做了:
t4 = np.random.randn(3, 3)
u, s, vh = np.linalg.svd(t4, full_matrices=False)
s[-1] = 0
t5 = u @ s @ vh
我希望结果是一个 3x3 矩阵,但结果似乎是一个形状为 (3,) 的行向量。
请大家提出我可能做错了什么?谢谢!
【问题讨论】:
-
你的意思是
(u * s) @ vh吗? s 是 1x3,所以 mat mult 永远不会产生 3x3。 -
是的@TimRoberts 非常感谢!
标签: python numpy linear-algebra svd