|
|
Sparse-Matrix: Hauptdiagonale mit einsen füllen |
|
T16 |
Forum-Century
|
|
Beiträge: 145
|
|
|
|
Anmeldedatum: 31.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.02.2018, 12:43
Titel: Sparse-Matrix: Hauptdiagonale mit einsen füllen
|
|
|
|
|
Hallo, ich habe folgendes problem:
Ich möchte die ersten x Einträge der Hauptdiagonale einer Matrix im Sparseformat mit einsen füllen und das gleiche noch einmal mit den letzten x Einträgen der gleichen Matrix tun. Das ganze wird in einer Schleife mehrere tausend mal wiederholt. Hier ein ähnliches Minimalbeispiel:
Das Ganze funktioniert zwar, schaut man sich das ganze aber im profiler an, zeigt sich dass die Zeile 'SYS(indRB1)=1' locker 30 mal mehr Zeit verbraucht als die darauffolgende Zeile, obwohl ja im Prinzip der gleiche Befehl ausgeführt wird. indRB1 und indRB2 sind exakt gleich groß. Ich habe bereits versucht mit dem 5. Argument von sparse() Nichtnullelemente zu allokieren, das brachte aber keine Verbesserung. Hat jemand eine Idee woran das liegt? Oder wie man das Ganze umgehen kann? Die eine Zeile braucht gut 15 % meiner gesamten Programmlaufzeit, was ja beim simplen Auffüllen von einsen wirklich nicht nötig ist.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.02.2018, 13:35
Titel:
|
|
Hallo,
du kannst
speye
statt sparse verwenden.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|