8

我正在研究电力系统分析程序,我需要使用稀疏矩阵。

有一个例程,我只需通过以下调用填充稀疏矩阵:

self.A = bsr_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)

因为这个矩阵不会随着时间而改变。另一个矩阵确实会随着时间而改变,我需要更新它。有没有办法,例如:

co     = [ 2, 3, 6]
row    = [ 5, 5, 5]
val    = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]

我可以它们添加到先前初始化的稀疏矩阵中吗?更蟒蛇的方式是如何做到的?

谢谢

4

1 回答 1

5

您应该使用 acoo_matrix代替,您可以在其中更改属性colrow以及data先前创建的稀疏矩阵:

from scipy.sparse import coo_matrix
nele=30
nbus=40
col    = [ 2, 3, 6]
row    = [ 5, 5, 5]
val    = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]
test = coo_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)

print test.col
#[2 3 6]
print test.row
#[5 5 5]
print test.data
#[ 0.1+0.1j  0.1-0.2j  0.1-0.4j]
于 2013-07-18T03:35:38.413 回答