Ich habe eine große (~ 60.000) Menge von Triplet-Datenpunkten, die x-, y- und z-Koordinaten repräsentieren, die über ein kartesisches Volumen verstreut sind.
Ich suche nach einer Möglichkeit, Matlab zu verwenden, um die nicht-konvexe Form / das Volumen, die durch die maximale Ausdehnung der Punkte beschrieben wird, zu visualisieren.
Ich kann natürlich die einzelnen Punkte mit scatter3
visualisieren, aber angesichts der großen Anzahl von Punkten werden die Details der Form durch das Rauschen der Punkte verdeckt.
In meinem Beispiel werden Objekte unterschiedlicher Größe verwendet, da der Abstand zwischen Datenpunkten ungleichmäßig und effektiv zufällig ist. Es wird eine Sanduhr verwendet, da die Form nicht konvex ist.
Wenn Ihre Oberfläche, die die Punkte einschließt, als konvexes Polyeder beschrieben werden kann (dh wie die Oberfläche eines Würfels oder eines Dodekaeder , ohne konkave Gruben oder zackige spitze Teile ), dann würde ich mit der Erstellung einer 3D Delaunay-Triangulation der Punkte. Dadurch wird das Volumen um die Punkte herum mit einer Reihe von Tetraederelementen mit den Punkten als ihren Scheitelpunkten gefüllt, und Sie können dann die Menge der dreieckigen Flächen, die die äußere Hülle des Volumens bilden, mit dem convexHull
Methode der Klasse DelaunayTri
.
Hier ist ein Beispiel, das 200 zufällige Punkte erzeugt, die gleichmäßig innerhalb des Einheitswürfels verteilt sind, ein tetraedrisches Netz für diese Punkte erzeugt und dann die konvexe 3-D-Hülle für das Volumen findet:
%Vor%
Sie könnten Ihre Daten als eine Probe aus einer dreidimensionalen Wahrscheinlichkeitsdichte behandeln und diese Dichte auf einem Gitter, z. über ein 3D-Histogramm oder besser einen 3D Kernel-Dichte-Schätzer . Dann wenden Sie einen Schwellenwert an und extrahieren Sie die Oberfläche mit isosurface
.
Leider ist hist3
in der Statistics Toolbox (trotz seines Namens) nur ein 2D-Histogramm, und ksdensity
funktioniert nur mit 1D-Daten, so dass Sie 3D-Versionen selbst implementieren müssen.
Tags und Links matlab data-visualization 3d