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

Plotten mit Farbzuweisung

 

Logi87
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2012, 14:50     Titel: Plotten mit Farbzuweisung
  Antworten mit Zitat      
Hallo,


ich habe eine Punktliste mit X, Y und Z-Koordinaten der Punkte.
Dazu habe ich noch die R - G - B Werte jeweils in einer einzelnen Spalte.

Wie kann ich jetzt angeben das die Punkte beim 3D-Plot mit der Farbe aus den Spalten dargestellt werden sollen?

Hatte was von scatter3 gelesen, aber da ich 3 Spalten für die Farbe habe, geht dies nicht oder?


Danke schonmal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.08.2012, 21:01     Titel: Re: Plotten mit Farbzuweisung
  Antworten mit Zitat      
Hallo Logi87,

Was genau ist eine "Punktliste"? Bitte poste einen kleinen Beispiel-Datensatz, damit wir das Format der Input-Daten nicht erraten müssen.

Was genau heißt "3D-Plot" in Deinem Fall?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2012, 13:33     Titel:
  Antworten mit Zitat      
Also ich habe 6500 Punkte etwa und die haben X, Z und Z Komponente.
Also erstmal die rein räumliche Information.

Bis dahin wäre es ja kein Problem. Würde ich einfach über plot3 lösen.
Code:

plot3(spaltex, spaltey, spaltez).


In dem fall hätten die Punkte alle die gleiche Form und Farbe.
Nun möchte ich aber das bestimmte Punkte, bestimtme Farben zugeordnet werden.

Dazu habe ich den Punkten Farben des RGB Spektrums zugewiesen.

Bei scatter3 gibt es ja die Möglichkeit farben abzugreifen aber es will bvei mir nichtso recht klappen.

Code:
scatter3(Polydata50(:,2), Polydata50(:,3), Polydata50(:,4), S, C)


Dabei soll S die Form und C die Farbe sein.
Das klappt aber nicht so recht, hatte gelesen das die Farbangabe auch in einer 3 Spaltenmatrix erfolgen kann, dies funktioniert aber nicht.


ein datensatz eines Punktes sieht folgendermassen aus.
[x] - [y] - [z] - [R] - [G] - [B]

Hoffe das war jetzt verständlicher Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 27.08.2012, 09:56     Titel:
  Antworten mit Zitat      
Lösung mit einer Schleife, ohne besondere Matlabfunktionen zu benutzen. Plotted 10 solcher Punkte. Wenn du nicht zu viele Punkte hast, sollte das trotzdem schnell gehen.

Code:

V = rand(10,6);
S = size(V,1);
figure
hold on
for k = 1:S
    plot3(V(k,1),V(k,2),V(k,3),'*','Color',V(k,4:6))
end


V hat das von dir gewünschte Format
Zitat:

ein datensatz eines Punktes sieht folgendermassen aus.
[x] - [y] - [z] - [R] - [G] - [B]


Viele Grüße
Nras

edit:
Zitat:
Also ich habe 6500 Punkte etwa und die haben X, Z und Z Komponente.

6500 Punkte gehen damit schnell genug.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.08.2012, 15:25     Titel:
  Antworten mit Zitat      
Hallo Logi87
Zitat:
Also ich habe 6500 Punkte etwa und die haben X, Z und Z Komponente. Also erstmal die rein räumliche Information.

Eine Diskussion im Matlab-Forum ist viel einfacher, wenn Du Matlab-Syntax verwendest. "Punkte die X, Z (wohl Y?!) und Z Komponente haben" sagt auf Anhieb erstmal gar nichts. Sind dies 3 [1 x 6500] Vektoren, oder eine [6500 x 3] Matrix vom Typ DOUBLE? Oder sind dies ein Struct-Vector mit 6500 Elementen und den Feldern 'X', 'Y' und 'Z'? Das Erraten solcher Details ist zu fehlerträchtig für eine effiziente Antwort.

Zitat:
Code:
plot3(spaltex, spaltey, spaltez).

Was ist nun "spaltex" usw?

Zitat:
Das klappt aber nicht so recht,

"Klappt nicht" und "funktioniert nicht" sollte im Forum immer näher erklärt werden. Probleme lösen ist viel einfacher als Probleme raten.

Zitat:
ein datensatz eines Punktes sieht folgendermassen aus.
[x] - [y] - [z] - [R] - [G] - [B]

Diese Schreibweise verstehe ich wieder nicht. Höchstwahrscheinlich bedeutet "-" hier nicht Minus. Valide Matlab-Syntax ist es aber ebenfalls nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2012, 14:43     Titel:
  Antworten mit Zitat      
Danke erstmal an Nras.

Das scheint schon in die richtige Richtung zu gehen.
Aber es funktioniert imemr noch nicht.

Bei der "color"-Funktion müssen Werte zwischen 0 und 1
gewählt werden. Meine Werte der einzelnen Spektralkanäle liegen aber
zwischen 0 und 255.

Zitat:
Error using plot3
Color value contains NaN, or element out of range 0.0 <= value <= 1.0


Gibt es da eine gleichwertige Funktion für?

Und noch eine Frage, was genau macht die
Code:

Funktion?


PS: Ich bemühe mich in Zukunft die Form einzuhalten und entschuldige mich dafür.
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 30.08.2012, 16:02     Titel:
  Antworten mit Zitat      
Hallo,

Du musst deine Farbwerte, die von 0 bis 256 reichen, auf 0 bis 1 normalisieren (durch 256 teilen).

Mein V sollte bloß zufällig Werte liefern, da du deine Werte nicht mitgeliefert hast.
V ist eine 10x6 Matrix, die Zufallszahlen beinhaltet. Hoffentlich so, wie du es beschrieben hast. Die ersten drei Spalten sind die x-,y- und z-Koordinaten der Punkte und die Spalten 4-6 beinhalten RGB-Werte. Du müsstet dann wohl einen 6500x6 Matrix haben - so habe ich das zumindest aus deinen Angaben herausgelesen.


Viele Grüße.
Private Nachricht senden Benutzer-Profile anzeigen
 
Logi87
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 06.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2012, 17:10     Titel:
  Antworten mit Zitat      
Dankeschön, das hat gut funktioniert.

Denke können wir jetzt schliessen das Problem.
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.