|
|
Matlab Matrixsortierung nach Zeilen |
|
Jerno |

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 09:09
Titel: Matlab Matrixsortierung nach Zeilen
|
 |
Hallo zusammen
Also ich habe eine 40X900 Matrix und will nun die 2. Spalte, die 3. Spalte usw immer mit der vorhergegangenen Spalte vergleichen also alle 40 Werte der 2. Spalte mit dem 1,1 Wert, dann dieselben mit dem 1,2 usw und dann will ich eine Zuordung machen in der immer der gingste Abstand zum nächsten Wert eingetragen wird.
Ich mache mal ein Bsp:
Originalmatrix
1.0 1.5 2.8 3.4 1.0 0.8
4.0 2.9 1.6 9.2 2.9 3.1
9.3 8.9 9.1 1.4 9.0 9.5
wenn ich nun das matlab programm starte soll folgendes rauskommen
1.0 1.5 1.6 1.4 1.0 0.8
4.0 2.9 2.8 3.4 2.9 3.1
9.3 8.9 9.1 9.2 9.0 9.5
ich weiß nicht wie ich das ohne eine riesen Ansammlung von Schleifen realisieren soll.
Wäre also für jeden Tip sehr dankbar.
Gruß Jerno
|
|
|
|
|
Fragewurm |

Forum-Century
|
 |
Beiträge: 180
|
 |
|
 |
Anmeldedatum: 23.09.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 09:28
Titel:
|
 |
Hi
vielleicht hilft dir ja
Gruss Fragewurm
_________________
Fehler jeglicher Art Dienen zur allgemeinen Belustigung
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 10:03
Titel:
|
 |
Hallo,
also wenn es einfach nur um sortieren geht dann genügt eine Zeile:
Wenn es wirklich um den geringsten Abstand geht, ist die Frage, was sollte passieren, wenn z.B. sowas vorliegt:
Der geringeste Abstand würde ja die 4.2 der 4.0 zuordnen, 9.2 der 9.3 and was passiert dann mit 9.8?
Viele Grüße,
LittleX
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 13:20
Titel:
|
 |
Es ist einfach so, dass immer ein weiteres Signal passt.
Und jede Zeile muss mit jedem Wert der passenden Spalte verglichen werden.
Das heißt: Wert (1,1) mit allen anderen (1,n) Werten, und der mit dem geringsten Abstand wird dann als neuer 1,2 Wert zugewiesen.
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 14:44
Titel:
|
 |
Also wenn immer passende Werte da sind, kannst Du doch sort direkt verwenden. Mit Deinen Beispieldaten liefert das das genau gleiche Ergebnis.
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 14:58
Titel:
|
 |
Sort liefert einfach nur ein Sortierung der Werte von tief nach hoch, das hat aber garnichts mit dem Abstand zu tun.
Ich brauche einnen Vergleich der Abstände.
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 15:08
Titel:
|
 |
Und mein Beispiel ist schlecht gewählt, aber leicht angepasst:
4.0 2.9 1.6 9.2 2.9 3.1
9.3 8.9 9.1 1.4 9.0 9.5
1.0 1.5 2.8 3.4 1.0 0.8
wenn ich nun das matlab programm starte soll folgendes rauskommen
4.0 2.9 2.8 3.4 2.9 3.1
9.3 8.9 9.1 9.2 9.0 9.5
1.0 1.5 1.6 1.4 1.0 0.8
Und es soll im ersten Schritt den Abstand zwichen 4.0-2.9=1.1
den Abstand zwichen 4.0-8.9= -4.9
und den Abstand zwichen 4.0-1.0=3.0
wie man nun sieht ist der Abstand zwichen 1,1 und 1,2 am geringsten und wird somit als Wert für 1,2 gesetzt.
Falls wie bei dem Vergleich bei 1,3 ein anderer Wert näher ist soll dieser gesetzt werden.
Hoffe das war verständlicher und es hat jemand eine Idee.
MfG Jerno
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.11.2009, 16:01
Titel:
|
 |
Hallo,
mir ist noch nicht ganz klar, warum Du unbedingt die Abstände berechnen willst. Nachdem Du ja geschrieben hast, dass es zu jedem Wert einen passenden in der nächsten Spalte gibt, muss ja z.B. der kleinste Wert der zweiten Spalte zum kleinsten Werte der ersten Spalte gehören.
Das einzige was an dem veränderten Beispiel anderes ist, ist dass die erste Spalte nicht sortiert ist.
Also könntest Du die Matrix sortieren und dann die Zeilen entsprechend wieder zurück tauschen.
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.11.2009, 10:03
Titel:
|
 |
Also ich habe Dein sort-Vorschlag ausprobiert, es ist aber nicht das was ich brauche, denn mit sort werden einfach alle Signale nach Größen sortiert, das heißt das zu Beginn größte Signal bekommt in jedem Schritt immer den größten Wert, das 2.größte den 2.größten Wert usw....
ich weiß aber, dass sich die Signale auch kreuzen, das heißt ich muss immer schauen welcher der 40 neuen Werte zu dem vorangegangenen den geringesten Abstand hat.
Und hast Du da vllt auch ne Idee???
Gruß Jerno
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.11.2009, 17:46
Titel:
|
 |
Hallo,
zum ausprobieren wäre ganz gut, wenn Du mal den entsprechenden Teil mit so einer Signalkreuzung postest. Also wieder so ein überschaubarer Miniabschnitt wie zuvor auch, nur halt mit dem Problemfall
Viele Grüße,
LittleX
|
|
|
Jerno |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 19.10.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.11.2009, 13:38
Titel:
|
 |
Hallo Leute
also ich hab meine Abstandsortierung hinbekommen, jedoch wenn ich die herausgegebenen Zeilen zurückführen will bekomme ich nur Mist zurück, mache da wohl was falsch hoffe also auf Eure Hilfe.
Hier mein "Programm"(wenn man das so nenen kann):
A ist die Matrix mit den Originalsignalen.
Ich habe mir gedacht wenn Zeile mir die Zeile nennt sollte es kein Problem sein das zuzuordnen, jedoch wenn ich es wie beschrieben mache kommt nur Mist dabei raus.Hoffe jemand von Euch sieht meinen Fehler.
Gruß Jerno
|
|
|
|
|
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.
|
|