matlab matrix sortieren < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 11:38 Fr 06.10.2006 | Autor: | why_not |
Aufgabe | ich habe eine matrix in der jeweils eine zeile einen vektor darstellt. die vektoren sind unterschiedlich lang, fangen also teilweise mit nullen an. ich würde nun gern die matrix nach der länge der vektoren sortieren. |
meine überlegung war, dass ich "sign(matrix)" benutzen könnte. wenn ich das tue, erhalte ich eine matrix mit nullen und einsen. die kann ich dann mit hilfe von "sort" sortieren lassen.
allerdings weiss ich dann nicht, welche elemente meiner matrix wo sind.
gibt es eine art zeiger in matlab? oder vielliecht noch einfacher, einen befehl, der mir die ursprüngliche matrix nach länge sortiert?
danke schön für alle antworten!
*david
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
mir ist nicht ganz klar, wie das Endergebnis aussehen soll, aber hier zwei Ansätze:
Wenn die Zahlen alle 0 oder positiv sind, dann ist es am einfachsten:
sortrows(matrix)
Dieser Aufruf sortiert die Zeilen nach aufsteigender Größe der ersten Elemente. Daher stehen die meisten führenden Nullen oben und die wenigsten unten.
Wenn im Datensatz auch negative Zahlen vorkommen können, sollten wir nach dem Betrag dieser Werte sortieren. Das erreichen wir so:
[muell,ord] = sortrows(abs(matrix));
Die sortierte Matrix ist dann:
matrix(ord,:)
Wenn die Ansätze in die richtige Richtung gehen, du aber doch etwas anderes wolltest, kannst du dich ja melden.
Gruß
Martin
|
|
|
|