Verfasst am: 31.12.2020, 17:59
Titel: 3D Surface plott mit Messdaten
Hallo liebes Forum,
ich benutze derzeit die Matlab version 16b.
Ich habe folgendes Problem.
Ich habe 20 Messpunkte im Raum (x,y,z-Koordinaten bezogen auf einen Mittelpunkt). Die Messunkte sind zufällig verteilt auf einer Halbkugeloberfläche. Nun möchte ich gerne auf Basis dieser Koordinaten eine Surface erstellen (Halbkugel), welche dann an den entsprechenden Messpunkten den Messwert C (Skalar) anzeigt. Zwischen den Punkten sollte die Farbe der Surface interpoliert werden.
Weiß jemand wie das geht? Ihr würdet mir wirklich sehr weiterhelfen.
Leider komme ich mit meshgrid, griddata und surf immer nur so weit, dass dann die z-Koordiante die Farbig dargestellte Fläche ist. Ich bräuchte das sozusagen in 4D (3-Koordinaten und ein Messwert)
ich verstehe die Fragestellung nicht recht.
Bei surf kann man ein viertes Argument angeben, das die Farbgebung der Punkte steuert. Hilft das?
Falls nicht, bitte am besten den bisherigen Code posten und genau beschreiben, was was der Unterschied zwischen dem Ist-Zustand und dem Soll-Zustand ist.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
JessicaMatlab2020
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.01.2021, 11:14
Titel:
Hallo Harald,
danke für deine schnelle Antwort.
ich habe 20 Messpunkte welche auf der Oberfläche einer Halbkugel verteilt sind (Bild im Anhang).
Für diese 20 Messpunkte kenne ich die x,y,z Koordinaten im Raum ausgehend von dem Nullpunkt in mm:
Code:
% Das ist mein Programm.
z= [-25-75-125-175-225-275-325-375-425-475-525-575-625-675-725-775-825-875-925-975];
x = [-1000499496-492-4879610-803784762-7370781-369-344316283-4840192];
y = [0-864859853-8440947-464-453440426-8180639-596-5474890-380111];
c= [3434353535353636444646474747485255546365];
Wenn man den Radius dieser Punkte berechnet wird man feststellen, dass diese etwas vom idealen Radius (R=1000) abweichen (r=sqrt(x^2+y^2+z^2)).
Nun möchte ich eigentlich die Oberfläche einer Halbkugel plotten und an den entsprechenden Messpunkten (x,y,z) den Messwert C (skalarer Wert an jedem Punkt) farbig an dern Kugeloberfläche darstellen. Dabei sollte diese Kugeloberfläche erhalten bleiben.
Ich habe es bisher geschafft, das ich das gewollte Ergebniss über die deformation der Fläche über die Skalierung der Z-Koordinate erreicht habe (siehe Bild). Die Messpunkte sind als Scatter dargestellt. Dafür habe ich die Messwerte C skaliert zwischen 0 und -1000.
In der jetztigen Lösung habe ich die Z-Koordinate durch eine skalierte Version der C-Messwerte getauscht. Daurch ist aber keine Kugeloberfläche mehr enthalten.
ich möchte sozusagen eine Halbkugeloberfläche erzeugen und dann diese auf Basis der Messdaten (x,y,z,c) einfärben.
Ich hoffe diesmal ist das Problem verständlicher.
Vielen Dank
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
JessicaMatlab2020
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.01.2021, 13:06
Titel:
Perfekt Danke !
Vielen Dank für die schnelle Hilfe
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
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.