[Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen] | |
Mathematik-Online-Lexikon: | |
Dünn besetzte Matrizen |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z | Übersicht |
>> A=sprand(100,100,.1); B=sprand(100,100,.2); C=sprand(100,100,.3); >> spy(B)werden zunächst die drei dünn besetzten -Matrizen A, B und C erzeugt, bei denen rund 10%, 20% bzw. 30% der Elemente von 0 verschieden sind. Das nachfolgende Bild zeigt die mittels
spy(B)
dargestellte Belegungsstruktur der Matrix B:
Rechnen mit Sparse-Matrizen:
>> M=(A+B)*C; >> nnz(M) ans = 9992 >> F=full(M); >> whos Name Size Bytes Class A 100x100 11900 double array (sparse) B 100x100 22100 double array (sparse) C 100x100 31688 double array (sparse) F 100x100 80000 double array M 100x100 120404 double array (sparse) ans 1x1 8 double array Grand total is 25374 elements using 266100 bytesVerknüpfungen von Sparse-Matrizen (wie bei der Berechnung von M) ergeben wiederum Sparse-Matrizen. Dabei ist jedoch darauf zu achten, dass der Belegungsgrad steigen und die Verwendung des Sparse-Formats damit ggf. ineffizient sein kann. In dem betrachteten Beispiel ist M aufgrund der 9992 von 0 verschiedenen Elemente nahezu vollbesetzt und benötigt gegenüber der in F gespeicherten Variante im double array Format rund 50% mehr Speicherplatz.
Wie das nachfolgende Beispiel zeigt, enstehen bei der Verknüpfung von Matrizen im dünn- und vollbesetzten Format stets vollbesetzte Ergebnismatrizen:
>> X=C-F; >> whos X Name Size Bytes Class X 100x100 80000 double array Grand total is 10000 elements using 80000 bytes
automatisch erstellt am 12. 1. 2007 |