Blockdiagonalmatrix

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 14:45

Hi,

ich würde gerne eine Blockdiagonalmatrix H (Dimension (P-1)*(N-1)x(P-1)*(N-1)) bauen , die P-1 mal den Matrixblock T (Dimension (N-1)x(N-1)) auf der "diagonalen" enthält,d.h

H=block_diag(T,...,T) (P-1 mal).

Jetzt könnte ich mir diese Matrix auch mit ner Schleife bauen, aber würde es lieber effizienter mit dem block_diag Befehl machen. Weiss jemand, wie ich die Matrix T P-1 mal in die Klammer befinde, kann man das irgendwie mit ner Schleife in der Klammer lösen vllt?

Lg und Viele Grüße
Benutzeravatar
BlackJack
Moderator
Beiträge: 32712
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Blockdiagonalmatrix

Beitragvon BlackJack » Freitag 26. August 2016, 15:07

Ungetestet:
  1. H = block_diag(*([T] * (P - 1)))
“XML combines all the inefficiency of text-based formats with most of the unreadability of binary formats :-)” — Oren Tirosh, c.l.p, 2002
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Re: Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 16:11

Hi,

danke schonmal. Ich habe das jetzt so probiert, aber bekomme nen memory error, da die dimension zu hoch ist. Hab dann probiert ne sparse matrix zu machen , also

H = sparse.block_diag(*([T] * (P - 1)))


dann bekomme ich jedoch den fehler "block_diag() takes at most 3 arguments". Jedoch ist T doch als Liste aufgeführt, deswegen verstehe ich den Fehler nicht..

Lg
götze1988
User
Beiträge: 13
Registriert: Samstag 6. August 2016, 13:02

Re: Blockdiagonalmatrix

Beitragvon götze1988 » Freitag 26. August 2016, 16:13

Ok, habs selber gelöst mit
H = sparse.block_diag(([T]*(P-1))).

Danke

Zurück zu „Wissenschaftliches Rechnen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder