需要更高效的代码来编写秩一矩阵的和



我的目标是使用SVD给出的秩一近似值来计算矩阵。例如,在计算之后

M=np.array([[3,0],[4,5]])
u, s, vt = np.linalg.svd(M)

我最终计算出M作为的总和

s[0]*np.matmul(np.array([[u[0][0]],[u[1][0]]]),np.array([vt[0,:]]))+s[1]*np.matmul(np.array([[u[0][1]],[u[1][1]]]),np.array([vt[1,:]]))

很明显,我需要一些帮助来提高效率。我该如何清理?

首先使用切片而不是访问每个元素。

如果切片正确,则无需再次使用np.array((。

s[0]*np.matmul(u[:,0:1],vt[0:1,:])+s[1]*np.matmul(u[:,1:],vt[1:,:])

相关内容

  • 没有找到相关文章

最新更新