WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Werte aus Matrix selektieren und plotten

 

svensi
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2011, 14:16     Titel: Werte aus Matrix selektieren und plotten
  Antworten mit Zitat      
Hallo Forum,

habe eine Matrix mit 6 Spalten und variabler Zeilenanzahl. Die Daten in den ersten beiden Spalten sind Koordinaten und sollen als scatter geplottet werden, wobei alle Punkte miteinander verbunden sollen, deren Wert in der 6. Spalte gleich ist.
Nun die Frage: Gibt es eine Möglichkeit, dies direkt über die Plotfunktion zu steuern oder soll ich erst die einzelnen Datengruppen (mit gleichem Wert in Spalte 6) aus der Matrix extrahieren und dann plotten. Da die Datenmenge (in den Zeilen variiert) muss das ganze Verfahren flexibel sein.
Bin noch ganz neu in Matlab und wäre daher für jeden Vorschlag dankbar!!
VG Sven
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.12.2011, 15:59     Titel:
  Antworten mit Zitat      
Hallo,

das einfachste dürfte sein (als Variable nehme ich data) :
- vorkommende Elemente in 6. Spalte ansehen
Code:
groups = unique(data(:,6));


- plotten der einzelnen Gruppen
Code:
hold on
for I = 1:groups
plot(x(data(:,6) == groups(I),1), x(data(:,6) == groups(I),2)
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
svensi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2011, 19:34     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für die schnelle Antwort. Habe nun folgenden Code ausprobiert (data=trackingresult):

Code:

x=trackingresult(:,1);
y=trackingresult(:,2);

groups = unique(trackingresult(:,6));
hold on
for I = 1:groups
plot(x(trackingresult(:,6) == groups(I),1), y(trackingresult(:,6) == groups(I),1))
end
 


Erhalte ein Diagramm, wo nur eine Gruppe an Daten enthalten sind: Alle Punkte mit einer 1 in Spalte 6. Es sind jedoch insgesamt 16 verschiedene Elemente in Spalte 6. Warum werden nicht auch die 15 anderen Gruppen eingezeichnet?

VG Sven
Private Nachricht senden Benutzer-Profile anzeigen
 
svensi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2011, 20:04     Titel:
  Antworten mit Zitat      
Habe die Lösung:

groups = unique(trackingresult(:,6));
no = max(groups)
hold on
for k = 1 : no;
plot(x(trackingresult(:,6) == groups(k),1), y(trackingresult(:,6) == groups(k),1));
k
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.12.2011, 20:08     Titel:
  Antworten mit Zitat      
Hallo,

ich meinte eigentlich:
Code:
hold on
for I = groups
plot(x(data(:,6) == I,1), x(data(:,6) == I,2)
end


Deine Lösung ist allerdings wohl lesbarer Wink

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.