|
|
Wertabfrage eine Matrix durch Indizes eines Vektors |
|
Seb85 |

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 15:34
Titel: Wertabfrage eine Matrix durch Indizes eines Vektors
|
 |
|
 |
|
Hi,
folgendes Problem:
Ich habe einen Vektor (Nx1) und eine Matrix (Nx6).
In dem Vektor stecken die Zahlen 0 bis 12 und die Matrix besteht aus Farbwerten 0 bis 255 mit 6 Kanälen.
In meiner Schleife möchte ich dann zunächst alle 0 aus diesem Vektor entfernen, dafür gehe ich von 1 bis 12 alles durch. Nachdem ich z.B. alle Stellen des Vektors, die eine 1 haben, soll er mir von diesem entstandenen Array ein randsample erstellen, das 2/3 der länge hat, das andere Drittel wird in einem anderen Vektor gespeichert.
Diese werden danach mit vertcat aneinander verknüpft. Rauskommen sollte danach ein Vektor mit den jew. Indizes an denen KEINE Nullen sind (oder?), nunja, auf jedenfall möchte ich im nächsten Schritt diese Vektoren (a_train bzw. a_test) auf meine oben genannte Matrix anwenden, um mir die Werte an den Stellen auszugeben, an den mein Vektor zuvor keine Nullen aufweist.
Rauskriegen tue ich aber wiederum Nullen in meinem Y_train..
wo liegt mein Fehler ?^^
edit by denny: bitte die Codeumgebung verwenden. Danke!
|
|
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 16:26
Titel:
|
 |
|
|
Seb85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 16:31
Titel:
|
 |
nja nicht ganz, wie gesagt, die Aufteilung muss s chon 2/3 zu 1/3 sein und ich verstehe nicht was du mit v1 meinst
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 17:03
Titel:
|
 |
Hallo
habe schon mehrmals gelesen, aber
irgend wie verstehe ich nicht was du da erreichen willst.
Bitte Beispiel!
|
|
|
Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 17:06
Titel:
|
 |
Öh,
bei mir im Beispiel ist A_resh deine (nx6) Matrix und B_resh dein (nx1)Vektor und ja, da war wohl noch nen Tippfehler drin
|
|
|
Seb85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 17:18
Titel:
|
 |
B_train=v(t1); %Trainingsvektor?
B_test=v(t);
oder ?
Also, was ich damit erreichen will:
Es handelt sich um eine Datenmatrix mit 6 Kanälen aus einem Luftbild, der Vektor bildet meine Referenzdaten mit den 12 Klassen (z.B. 0 = Hintergrund, 1= Weizen, 2=Wald usw.)
Auf diese soll dann ein Random Forest angewendet werden um eine Klassifikation durchzuführen.
Was mir jetzt noch fehlt ist, dass ich auch sicher sein kann das alle Klassen in meinem perm-Vektor vorhanden sind, daher dann doch lieber mit schleife schreiben oder ?
Worst-Case wäre ja z.B. ich habe nur 5 mal den Eintrag 1 (Also für die Klasse Weizen) und die würde unglücklicherweise wegfallen wenn ich 2/3 davon nehme.
Hoffe das war verständlicher
: hatte vergessen, dass sich das Verhältnis 2/3 zu 1/3 aus ein und demselben Vektor zusammenzustellen ist, daher doch lieber mit setdiff arbeiten ? Brauche ja diejenigen Indizes test-Vektor die ich im train-Vektor nicht erfasst habe
|
|
|
Seb85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 18:31
Titel:
|
 |
Nu hab ich die Nullen raus, was mich allerdings wundert, wieso mein Y_train und Y_test so schön geordnet sind...d.h. es folgen z.B. erst alle 1, dann die 2, dann die 3 usw, müsste doch eigentlich aucjh mixed sein ?^^
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 19:49
Titel:
|
 |
Zitat: |
Nu hab ich die Nullen raus, was mich allerdings wundert, wieso mein Y_train und Y_test so schön geordnet sind...d.h. es folgen z.B. erst alle 1, dann die 2, dann die 3 usw, müsste doch eigentlich aucjh mixed sein ?^^ |
Weil SETDIFF intern UNIQUE anwendet und UNIQUE sortiert ja die Daten.
|
|
|
Seb85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 20:02
Titel:
|
 |
Achso, ok, das erklärts natürlich!
So lange die richtigen Werte im Nachhinein abgegriffen werden isset ja auch net so wild..naja, danke
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 20:36
Titel:
|
 |
Na ja UNIQUE eliminiert ja doppelte Werte, man verliert ja die Daten, ob
es bei dir sinnvoll ist.
also z.B liefert
|
|
|
Seb85 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 36
|
 |
|
 |
Anmeldedatum: 15.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.11.0 (R2010b)
|
 |
|
|
 |
|
Verfasst am: 21.03.2011, 22:05
Titel:
|
 |
da mir ja nur die Indizes ausgegeben werden, habe ich keine doppelten Werte, von daher ist das durchaus i.O.
|
|
|
|
|
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.
|
|