Sto lavorando a un programma per l'analisi del sistema di alimentazione e ho bisogno di lavorare con matrici sparse.Aggiungere valori a una matrice sparsa Scipy con indici e valori
C'è una routine in cui mi riempio una matrice sparsa solo con la seguente chiamata:
self.A = bsr_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)
Poiché questa matrice non cambierà nel corso del tempo. Ancora un'altra matrice cambia nel tempo e ho bisogno di aggiornarla. C'è un modo che avere, ad esempio:
co = [ 2, 3, 6]
row = [ 5, 5, 5]
val = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]
posso aggiungere quelli a una matrice sparsa in precedenza inizializzato? Come sarebbe il modo più plateale di farlo?
Grazie
Grazie. Ho letto nella documentazione che: _Per impostazione predefinita durante la conversione in formato CSR o CSC, le voci duplicate (i, j) verranno sommate insieme. Ciò facilita la costruzione efficiente di matrici di elementi finiti e simili. (vedi esempio) _ Che più o meno risolve il problema che ho avuto. Nel mio codice, ci sono diversi oggetti che contribuiscono a questa matrice e due oggetti possono contribuire alla stessa voce (i, j). Ciò significa che ogni volta che voglio aggiungere il contributo di un oggetto devo ricostruire la matrice? – amalbe
hi ... sì, puoi usare i diversi oggetti per costruire la matrice semplicemente assegnando i parametri 'col' e' row' alla 'coo_matrix'. Non sono sicuro se 'SciPy' creerà o meno una copia interna durante la costruzione della matrice sparsa –