我正在使用
Python和numpy做线性代数.
我在矩阵上执行numpy SVD以获得矩阵U,i和V.然而,i矩阵表示为具有1行的1×4矩阵.即:[12.22151125 4.92815942 2.06380839 0.29766152].
我如何能够将i矩阵表示为对角矩阵,如下所示:
[[12.22151125,0,0,0],[0,4.92815942,0,0],[0,0,2.06380839,0],[0,0,0,0.29766152]]
我正在使用的代码:
A = np.matrix([[3, 4, 3, 1],[1,3,2,6],[2,4,1,5],[3,3,5,2]])
U, i, V = np.linalg.svd(A,full_matrices=True)
所以我希望我成为一个完整的对角矩阵.我是怎么做到的?
最佳答案 使用numpy的
diag功能:
numpy.diag(i)
从文档:
Extract a diagonal or construct a diagonal array.