Ich habe 3D-Punkte auf einer Kugeloberfläche, wahlweise als (theta,phi,r) im Bodenmaß oder als (X,Y,Z) im Gradmaß.
Zu jedem dieser Punkte berechne ich einen Funktionswert f(theta,phi,r).
Nun sollen mit scatter3 die Punkte entsprechend dem jeweiligen Funktionswert von f farbig gefüllt werden.
Der Aufruf von scatter3 sieht dann so aus:
ich hätte gesagt, das passiert automatisch basierend auf der voreingestellten bzw. gewählten colormap.
c muss allerdings dieselbe Anzahl Elemente enthalten wie die Datenvariablen. Das scheint mir hier nicht der Fall zu sein.
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 ;)
Danke Harald, genau das mit der Dimension ist offenbar mein Problem. Ich erzeuge X und Y mit sphere(). Diese Werte rechne ich dann mit cart2sph() in theta,phi und r um.
Dazu berechne ich f(theta,phi).
Dann erhalte ich für die Dimensionen von X bzw. theta und f: 21x21.
erhalte ich zwar keine Fehlermeldung sondern irgendwelche bunten Punkte, die mit f aber nichts zu tun haben. Und der Colorbar zeigt das Intervall von -10 bis 10 an, was auch nicht zu den Werten von f passt.
Falls nicht, bitte möglichst ein reproduzierbares Beispiel zur Verfügung stellen.
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 ;)
Verfasst am: 08.04.2024, 17:38
Titel: Gewünschtes Beispiel
Hier das gewünschte Beispiel, das ich aus meiner sehr umfangreichen App kopiert und etwas vereinfacht habe, weil die Oberfläche nicht einbezogen ist. Es muss lediglich noch app.UIAxes3 geändert werden.
Die Konstanten c1,c2,c3,dx werden bei mir aus dem GUI übernommen, weil sie änderbar sein sollen. Daher müssen sie in die Funktionsdef. einbezogen werden. Die Funktionsdef. spielt eigentlich zum Laufen der App eigentlich keine Rolle.
% in Kugelkoordinaten; theta,phi in RAD [theta,phi,r] = cart2sph(X,Y,Z);
%Dabei ist phi der Elevationswinkel
phi=pi/2-phi; % Umrechnung in üblichen Winkel hold(app.UIAxes3,'on');
axis(app.UIAxes3,'equal');
dx=r^x; % Für eine Kugel mit festem Radius immer gleich
Dadurch, dass du zuvor einen surf-Plot mit einem größeren Wertebereich gemacht hast, wird durch den scatter-Plot zunächst nicht der Farbbereich ausgeschöpft. Das kann man aber anpassen, z.B.
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 ;)
ich war auch erstmal erstaunt. ;) Um zu merken, dass es daran liegt, musste ich auch erst wissen, dass da noch ein anderes Graphik-Objekt im selben Koordinatensystem liegt.
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 ;)
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.