|
|
Matrix sortieren, doppelrte Einträge entfernen - wie?! |
|
gorila |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 23.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 16:40
Titel: Matrix sortieren, doppelrte Einträge entfernen - wie?!
|
 |
Hallo, ich bin ein ziemlicher Matlab neuling und bin hier am verzweifeln.
ich habe eine Matrix aus zwei spalten.
in der ersten Spalte stehen Namen, die sich wiederholen.
in der zweiten Spalte stehen die Zahlen die die Codes für die Namen darstellen.
also
Name1 Zahl1
Name1 Zahl1
Name3 Zahl3
Name3 Zahl3
Name2 Zahl2
Name2 Zahl2
usw.
wie kann ich in dieser Matrix die wiederholungen rausnehmen? Und zwar so, dass die Zahlen zugehörigkeit nicht verändert wird.
zB:
Name1 Zahl1
Name2 Zahl2
Name3 Zahl3
ich hoffe ihr könnt mir helfen
|
|
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 17:24
Titel:
|
 |
Hallo,
probier dies mal,
Edit by Bijick: Code-Umgebung repariert (und Doppelpostings gelöscht). Zum Einfügen von Code klickt man erst auf den Button "Code", dann tippt man den Text und klickt abschließend nochmals auf "Code".
_________________
Simulation
|
|
|
gorila |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 23.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 18:13
Titel:
|
 |
Also im Moment kämpfe ich damit, diese Matrix zu bekommen. Irgendwie geht gar nichts.
Es ist ein gescannter text.
unter dem Strich erhalte ich zwei Vektoren der Form (n,1) verpackt in zwei Zellen einer "data" matrix der Form, sagen wir, [1,2] als Cell Array.
erster Vektor entählt Namen und wurde als string gescant
zweite Vektor enthält Nummer und wurde als double gescant.
die Idee ist, ich mache daraus letztendlich meine Matrix, nennen wir sie, "Liste" die aus zwei Reihen der obigen Vektoren besteht.
also:
liste = [data{1}, data{2}];
und das klapt nicht, weil data{1} und data{2} verschiedene Dimensionen haben.
Das erste hat einen Cell,
das zweite einen Double
liegts an dem?
wie kann ich das umgehen?
wenn ich das zusammenkleben könnte, dann könnte ich mit
zunächst cell2mat eine "normale" matrix generieren und mit
unique 'rows'
das erreichen was ich will. weil unique mit cell arrays nicht funktioniert, sondern nur mit normalen Matrizen.
please help
|
|
|
hadi |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 06.08.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 18:46
Titel:
|
 |
Hallo!
Hab ich das mit der Matrix richtig verstanden? Du hast z.B.
Richtig?
Dann kannst du das so machen:
Dann kommt raus:
Schöne Grüße, Hadi
|
|
|
raphw |

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 12.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Matlab R2010a
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 18:54
Titel:
|
 |
Warum nicht einfach?
[a,b,c] = unique(foo);
x = [];
for i=1:length(b)
x = [x;foo(b)];
end
sollte aufs gleiche kommen, nur deutlich schneller...
|
|
|
gorila |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 23.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.11.2008, 19:13
Titel:
|
 |
Ich sollte vlt noch sagen, dass es nicht 3 zeilen sind, sondern 70.000
aber den Aufbau habt ihr korrekt verstanden=)
wie wird unique(foo) eingebaut?
"foo" ist bei mir nicht definiert
|
|
|
raphw |

Forum-Anfänger
|
 |
Beiträge: 21
|
 |
|
 |
Anmeldedatum: 12.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Matlab R2010a
|
 |
|
|
 |
|
Verfasst am: 24.11.2008, 10:59
Titel:
|
 |
unique ist tatsächlich deine gesuchte funktion, foo ist nur der name deiner matrix in matlab. nenn sie von mir aus data oder matrix, es ist egal.
a,b,c,x und i kannst du ebenfalls benennen wie du willst (sie werden bei programm-durchlauf definiert), sie sind lediglich platzhalter.
viel erfolg!
|
|
|
|
|
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.
|
|