我正在进行电力系统分析程序,我需要使用稀疏矩阵。
有一个例程,我只用以下调用填充稀疏矩阵:
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]
我可以将添加到以前初始化的稀疏矩阵中吗?怎么会有更多的pythonic方式呢?
谢谢
答案 0 :(得分:3)
您应该改为使用coo_matrix
,您可以在其中更改先前创建的稀疏矩阵的属性col
,row
和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]