|
hug77 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:34
Titel: Sortieren einer Matrix
|
|
|
|
|
Hallo,
derzeit stehe ich vor einem Problem beim sortieren einer Matrix: Ich möchte die Zeilen der Matrix so sortieren, dass die erste Spalte ausschlaggebend ist. Wenn dort für mehrere Zeilen das Selbe steht nach der zweiten schauen usw. ...
Dazu benutze ich die Funktion sortrows(matrix,[1,2,3]). Wenn ich das so auf kleinere Testmatrizen anwende klappt auch alles wie gewünscht, nur bei den Matrizen wos dann mal drauf ankommt geht es völlig in die Hose. In der ersten Spalte ist noch alles schön sortiert, aber bereits in der zweiten gibt es immer mal Vorzeichenwechsel (bei gleich erster Spalte)! Von sortiert kann da also keine Rede sein.
Wie kommt das, und wie könnte man das einfach beheben? Eine eigene Funktion zum sortieren hatte ich auch mal kurz probiert, aber >10.000 Zeilen war mein Code einfach nicht effizient genug...
Habe ich einfach "For any rows that have equal elements in a particular column, (e.g., A(1:4,1) for this matrix), sorting is based on the column immediately to the right" aus der Hilfe für sortrows fehlinterpretiert?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:41
Titel:
|
|
Hallo,
das Problem ist so schwierig nachvollziehbar.
Kannst du eine Matrix anhängen, anhand der das Problem reproduzierbar ist?
Das einzige, was ich mir als Problem vorstellen kann:
Sind die Elemente der ersten Spalte wirklich gleich, oder sehen sie nur gleich aus? (im Command Window auf format long stellen)
Beispiel:
Falls das nicht hilft: Welches Release verwendest du?
Grüße,
Harald
|
|
|
hug77 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2012, 12:47
Titel:
|
|
Ich seh schon, da hätte ich gleich etwas mehr ins Detail gehen sollen... Ich verwende Version 7.12.0 (R2011a).
Ein txt, was so eine Tabelle enthält habe ich mal angehängt (achtung: 11MB!). Wenn ich beim debuggen in die Tabelle reinschaue, dann sind die Einträge in der ersten Spalte auch wirklich identisch (im Beispiel -0.3 mit Rest nullen) und sehen nicht nur so aus.
Beschreibung: |
|
Download |
Dateiname: |
field100.txt |
Dateigröße: |
11.25 MB |
Heruntergeladen: |
690 mal |
|
|
|
hug77 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2012, 13:35
Titel:
|
|
Ok, selbst im Editor werden einfach noch nicht genug Ziffern angezeigt... Die entsprechenden Werte sind doch nur scheinbar gleich und unterscheiden sich um 10^-17...
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 16.07.2012, 18:33
Titel:
|
|
Hallo,
bist du dann damit zufrieden?
Wenn Werte, die sich nur so geringfügig unterscheiden, als "gleich" behandelt werden sollen, könntest du auch auf z.B. eine gewisse Anzahl Stellen runden.
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.
|
|