|
|
Vektoren bzgl Norm aussieben |
|
nadl |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2013, 12:29
Titel: Vektoren bzgl Norm aussieben
|
 |
Hallo Matlab-Forum!
Ich habe Vektoren gegeben, welche sagen wir Spaltenweise gegeben sind.
Ich möchte nun nur Vektoren betrachten, welche über einer gewissen Vektornorm bzw. einem gewählten Schwellwert liegen.
Bisher habe ich immer einen simplen Bruteforce Algo verwendet. Nun arbeite ich auf großen Daten und da dauert dies einfach zu lang. Weiss jemand was effektiveres? Kann ich die Vektoren in der Matrix nach Norm sortieren? Dann bräuchte ich die vorderen Spalten mit Vektoren geringerer Norm einfach von der Matrix "abschneiden"
Bisheriger Algo: Sei A die Matrix mit Vektoren, IdxA die Matrix der Indexe für Vektoren, muss konsistent gelöscht werden
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.01.2013, 12:34
Titel:
|
 |
Hallo,
ich würde das so machen:
Schneller wird das ganze, wenn du die Vektoren in Spalten statt in Zeilen ablegst. Dann so:
Grüße,
Harald
|
|
|
nadl |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2013, 12:41
Titel: Schwellwertbestimmung
|
 |
Danke sehr!
Leider macht das zeitlich keinen Unterschied. Dann ist es die Schwellwertfindung. Diese berechnet die Normen aller bestehenden Vektoren und bildet mean davon:
Oder ist Schwellwertfindung einfach so aufwendig? Eigentlich muss doch alles betrachtet werden, oder?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.01.2013, 14:47
Titel:
|
 |
Hallo,
mit dem Profiler kannst du herausfinden, welche Teile deines Codes am längsten brauchen. Und die Idee, die ich soeben verwendet habe, kannst du auch hier benutzen. Zudem werden die Normen hier wiederholt berechnet, du hast sie aber doch schon und kannst sie für die Filterung verwenden.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 13.01.2013, 23:48
Titel: Re: Schwellwertbestimmung
|
 |
Hallo nadl,
Es wäre hilfreich zu wissen, ob A 100 oder 100'000'000 Zeilen und Spalten hat.
Matlab's NORM-Befehl kann man effizienter mit einem, C-Mex-File berechnen: http://www.mathworks.com/matlabcentral/fileexchange/29035-dnorm2.
Wenn Du eine 2-Norm mit einem Schwellenwert vergleichst, wird unnötigerweise eine teure Wurzel berechnet:
Zur Berechnung von sum(X * X) kann man auch das DOT-Produkt verwenden, das in Matlab von der sehr effizienten BLAS-Bibliothek berechnet wird.
Gruß, Jan
|
|
|
|
|
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 - 2025
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.
|
|