我有一个很大的( 400K * 400K )稀疏矩阵,我需要计算 A'* A 的最大特征值。
问题是由于内存问题,Matlab甚至无法计算A'
我还尝试了[a,b,c] = find(A)
,然后通过创建转置稀疏矩阵进行转置,但尽管find()
有效,但创建的sprase不会。
这有一个很好的解决方案吗?它可以是matlab函数,也可以是另一种技术来计算这种乘法的最大特征值。
感谢。
答案 0 :(得分:3)
如果A是稀疏的,请参阅此thread以及this documentation中的一些讨论(基本上是按部分进行)以获得转置它的方法等。
但现在你需要计算B=A'*A
。问题是,它仍然稀疏吗?假设它是,使用链接中提到的先前技术继续进行应该没有问题。
然后,在获得B=A'*A
后,请使用eigs
eigs(B,1)
获得最大幅度的特征值。