Verfasst am: 23.02.2014, 16:11
Titel: scatter3 zu surface plot
Hallo,
ich habe folgendes Problem:
Ich habe ein Set aus Daten aus einer Simulation, daher kann ich keine Verbindung mit einer Formel zwischen den Daten herstellen. In jeder Zeile Matrix A befinden sich drei Einträge welche zusammen einen Punkt ergeben.
Die Daten kann ich prima mit einem scatter3 plot plotten. Sieht dann auch so aus wie ich möchte. Allerdings hätte ich nun gerne einen Surface plot. Meine Idee: man müsste jede Punkt mit seinen Nachbarpunkten verbinden und die Fläche zwischen den Linien ausgefüllen. Vielleicht geht es aber auch ganz anders.
Kann mir jemand helfen einen solchen plot zu erstellen? Meine bisherigen Versuche sehen leider alle nicht so aus wie ich es mir wünsche.
Ein Problem kann allerdings sein, dass deine Daten zum selben x-y - Paar verschiedene z-Werte enthalten.
Gibt es in deinem Beispiel dafür eine Erklärung? Es ist dann ja nicht wirklich sinnvoll, da eine Oberfläche durchzulegen.
genau wie du sagst gibt es doppelte x-y Paare mit dem selben z Wert. Die Werte kommen bilden eine Pareto-Front ab, allerdings ist die zweite Spalte keine Optimierungsvariable sondern einfach nur eine Schleife welche erhöht wird (sonst sind numerisch Probleme aufgetreten). Im Bereich sehr kleiner oder sehr großer Werte kann es dann zu den gleichen Paaren mit unterschiedlichem z Wert kommen. Evtl. kann man diese auch löschen oder leicht variieren.
Bei dem Link meinst du wahrscheinlich das Beispiel "Example Displaying Nonuniform Data on a Surface", da habe ich das Problem das mein Matlab (2011b) scatteredInterpolant nicht unterstützt.
Wie ich bereits gesagt habe finde ich, dass der scatter3 Plot für eine Fläche geeignet wäre wenn einfach nur alle Punkte in der Nähe verbunden wären und die Flächen ausgefüllt. Ich weiss aber nicht wie das geht.
Evtl. kann man diese auch löschen oder leicht variieren.
Das ist als Vorverarbeitungsschritt notwendig.
Zitat:
da habe ich das Problem das mein Matlab (2011b) scatteredInterpolant nicht unterstützt.
Trag das doch bitte in deinem Profil ein, dann kann man das bei Vorschlägen berücksichtigen.
Wenn ich mich recht erinnere, gibt es in deiner Version für diesen Zweck
Ich habe folgendes probiert aber das Ergebnis ist leider äußerst unbefriedigend. Das mit dem Verändern der Werte ist momentan natürlich auch nur sehr suboptimal und jetzt nur um auf das auf die Schnelle zu testen
Ich habe mal den Plot angehängt. Die Punkte sind da wo sie sein sollen, die Surface leider nicht.
Danke schon mal für den Hinweis mit den doppelten Daten.
sieht so aus, als ob dein Plot (vielleicht von einem vorherigen Versuch) immer noch die doppelten Punkte enthält. Bei mir siehts jedenfalls gut aus - soweit es die Daten eben zulassen.
mit den Daten hast du natürlich recht. Meine Vorstellung war ein Plot der aussieht wie der Scatter Plot nur eben als Fläche. Wenn man sich den Scatter Plot anschaut kann man sich das ja ganz gut vorstellen, wie bereits beschrieben, man müsste alle Punkte mit ihren benachbarten Punkten (also diejenigen Punkte welche für jeweils eine der sechs Raumrichtungen die kleinste euklidische Norm aufweisen oder sowas) verbinden und dann die Flächen ausfüllen. Dann würde das Ergebnis meinen Vorstellungen entsprechen. Evtl. geht das auch irgendwie aber ist dann vermutlich ein bisschen komplexer.
Grüße
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.