Matrix aufteilen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:18 Do 29.11.2007 | Autor: | l-x-r |
Hallo zusammen,
kann mir bitte jemand bei folgendem Problem lösen:
Ich habe eine 12000x7 Matrix in der in der ersten Spalte die ID-Zahlen (bspw. 10011) für 11 verschiedene Aktien stehen. Nun möchte ich die einzelnen Aktien anhand ihrer ID separieren. Wer kann mir da bitte weiterhelfen?
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
auf die Zeilen deiner Matrix M, die zur ID n gehören, kannst du zugreifen per:
teilmatrix = M(M(:,1) == n,:)
Wenn du die Teilmatrizen alle explizit erstellen willst, dann wirst du sie in ein Cell Array packen müssen, weil sie ja nicht gleichgroß sind. Aber für Berechnungen oder Plots sollte der obige Weg reichen.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:44 Do 29.11.2007 | Autor: | l-x-r |
Vielen Dank für Deine schnelle Antwort!!!
Und wie mach ich das genau mit dem Cell-Array? Die restlichen Spalten sollen ja zusammen mit der ID abgespeichert werden...
|
|
|
|
|
Ich würde es so machen:
Zuerst fischen wir uns alle IDs heraus:
ID = unique(M(:,1));
Dann durchlaufen wir in einer Schleife alle IDs und weisen der i-ten Zelle die Teilmatrix der i-ten ID zu:
for i=1:length(ID), cellM(i)={m(m(:,1)==ID(i),:)}; end;
Nun kannst du auf die Daten der 3-ten ID zugreifen per:
teildaten = cellM{3};
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:37 Do 29.11.2007 | Autor: | l-x-r |
Vielen, vielen Dank für Deine Hilfe!
|
|
|
|