有没有办法在matlab中计算稀疏矩阵的功效而不将其转换为完整矩阵。如果我试试
b = a^0.5
其中a是稀疏矩阵,我得到错误“Use full(x)^ full(y)。”。但是,将a转换为完整矩阵会破坏开始使用稀疏矩阵的目的。有人知道这是否可行?
答案 0 :(得分:3)
一般来说,稀疏矩阵的平方根不会稀疏。因此稀疏没有收获。
答案 1 :(得分:2)
您需要的是自己计算根。假设kxk方阵,然后
[v d] = eigs ( a, k )
r = v*(d^0.5)*v'
然而,这对于非对称或复杂矩阵不起作用,并且它实际上胜过了具有稀疏矩阵的目的,因为你产生了另外几个已满的矩阵。不幸的是,预计特征向量不会稀疏。因此,您了解为什么需要使用完整矩阵。