Sortierproblem
-
Hallo,
ich habe ein Problem 2 Datensätze zu sortieren. Habe 2 Dateien als Matrix eingelesen und möchte die Werte einer Matrix nach ihrer Größe sortieren, damit aber nicht genug die beiden Matrizen verfügen über die gleichen Koordinaten mit unterschiedlichen Werteausprägungen und mein Anliegen ist nun das eine sortiert wird und dabei die andere nach dem gleichen Schema die ursprünglichen Werte mit den gleichen Koordinaten mitnimmt.
Bsp:
1 3 7 2 (Matrix 1)
55,3 40,2 54.2 12.6 (Matrix 2)Ergebnis:
1 2 3 7 (Matrix 1 sort)
55.3 12.6 40.2 54.2 (Matrix 2 anhand von 1 sortiert)Danke für Eure Hilfe
-
Ich erkenn da grad keine Matrix. Schonmal daran gedacht die zusammengehörenden Daten auch irgendwie zusammen zu speichern (std::pair, einen Struktur, ...)
-
Das sollte auch nur ein Beispiel sein die Dateien die ich anspreche sind rech groß
in etwa mit diesem Format:1 2 3 4 5 65 76 7 7 87 3 34...
12 43 5 6 56 75 65 57 75 34...
123 34 45 56 56 767 6 786 3......
da hätten wir dann eine Matrix. Was mir schon gelungen ist, ist eine Matrix zu sortieren nur meine Frage ist halt wie kann das Sortierschema auf die andere Matrix übernommen werden? Oder denke ich einfach zu kompliziert ..
Danke schonmal
-
Ich seh da immernoch drei Vektoren oder eine einzelne Matrix, aber auf keinen Fall mehrere Matrizen.
-
Tschuldige das ich nicht sagte das es 2 Dateien des gleichen Formats mit unterschiedlichen numerischen Inhalten sind....aber ich dachte das wäre durch die Beiträge klar geworden..
-
Das bringt mich jetzt auch nicht weiter. Wo ist die Matrix? Wie werden MAtrizen überhaupt sortiert. Davon habe ich noch nie gehört (bin aber auch kein Profi, was Mathe angeht).
-
der_held schrieb:
Ich seh da immernoch drei Vektoren oder eine einzelne Matrix, aber auf keinen Fall mehrere Matrizen.
Warum sollte ein Vektor nicht auch eine Sonderform einer Matrix sein?
-
der_held schrieb:
Wie werden MAtrizen überhaupt sortiert. Davon habe ich noch nie gehört (bin aber auch kein Profi, was Mathe angeht).
Ich könnte mir höchstens vorstellen, dass Matrizen nach ihrer Norm sortiert werden können.
-
Musst entsprechend bei deinem swap (Austausch von den jeweiligen Werte) in deinem anderen Feld die Werte mit den selben Indizes des ersten Feldes tauschen.
Wo ist da das Problem ?
-
Ich seh da immernoch drei Vektoren oder eine einzelne Matrix, aber auf keinen Fall mehrere Matrizen.
Bist du dir sicher, dass du weißt, was eine Matrix ist?
Das hier ist auch eine Matrix:
(2 1)
-
Eine Matrix ist definiert durch: m x n
wobei x hier mal bedeutet und m und n natürliche Zahlen sind... Ob N oder N* weiß ich aber nicht...
Dies ist z.B. eine übliche Matrix:
Typ: 3x4
10 20 30 40
20 30 40 40
30 40 50 30Hoffe ich...
-
meissa röhrich schrieb:
Wo ist da das Problem ?
Das genau ist das Problem, könntest Du mir vielleicht ein wenig auf die Sprünge helfen worunter und vielleicht wo ich nachsehen könnte?!? Wäre echt hilfreich.
Danke
-
typedef std::pair<int, int> Paar; std::vector<Paar> werte; // hier die Werte in 'werte' einlesen std::sort (werte.begin(), werte.end());
Fertig.
-
Erreiche ich damit nicht nur eine Sortierung eines Vectors, diesen sort Befehl habe ich schon ausprobiert. Für die Zuordnung zum anderen Vektor/Matrix hätte ich irgendwie gern eine Hilfe, kann es zur Zeit gerade nicht ausprobieren. darum will ich nicht sagen das das mir nicht hilft was du geschrieben hast. Aber einen Sort Vektor sortierbefehl habe ich schon implementiert der auch funktioniert... nur die Zuordnung.. bedeutet das std::pair diese Zuordnung zum anderen Vektor, wenn es so ist danke und ich werde es ausprobieren.
-
Wenn du deine eigene Sortierroutine benutzt hast du irgendwo deinen
Bedingungspart:double sw; if(matrix_1[i+1]<matrix_1[i]) { sw=matrix_1[i]; matrix_1[i]=matrix_1[i+1]; matrix_1[i+1]=sw; sw=matrix_2[i]; matrix_2[i]=matrix_2[i+1]; matrix_2[i+1]=sw; }
-
Aber wer macht sich schon die Mühe, eine eigene Sortierroutine zu schreiben, wenns doch schon eine Tolle Fertige gibt?
Erreiche ich damit nicht nur eine Sortierung eines Vectors, diesen sort Befehl habe ich schon ausprobiert.
Nein. Ich verwende ja Paare!!! Jedes Element dieses std::vectors besteht aus einem Element je einer deiner 1xm Matrizen.
-
Studenten (bzw. Leute die die STL noch nicht kennengelernt haben.)
-
Mis2com schrieb:
wobei x hier mal bedeutet und m und n natürliche Zahlen sind... Ob N oder N* weiß ich aber nicht...
Ich nehme mal an du meinst mit N* die Menge N υ {0}. Was würde es für einen Sinn machen eine m x 0 Matrix zu definieren?