Le traçage d'une surface à partir d'un ensemble d'intérieur 3D de dispersion des points dans MATLAB
J'ai une grande (~de 60 000) de l'ensemble des triplets de points de données représentant x,y et z les coordonnées, qui sont dispersés dans un Cartésien volume.
Je suis à la recherche d'un moyen d'utiliser Matlab pour visualiser la forme non convexe/volume décrit par le maximum de points.
Je suis bien sûr de visualiser les différents points à l'aide de scatter3
, mais étant donné le grand nombre de points les détails de la forme sont masquées par le bruit de la stratégie dots.
Comme une analogie, imaginez que vous avez rempli une heure de verre avec des sphères de diverses tailles comme les BBs, les balles de ping-pong, et kix et ensuite on leur a donné les coordonnées du centre de chaque de chaque objet. Comment voulez-vous prendre ces coordonnées, et de visualiser la forme de la heure en verre contenant?
Mon exemple utilise différents objets de la taille parce que l'espacement entre les points de données est non-uniforme et efficace de l'aléatoire, il utilise un sablier parce que la forme est non-convexe.
OriginalL'auteur Adam Wuerl | 2011-03-30
Vous devez vous connecter pour publier un commentaire.
Si votre surface en joignant les points peuvent être décrits comme un polyèdre convexe (c'est à dire comme la surface d'un cube ou d'un dodécaèdre, sans concave fosses ou jagged pointu pièces), alors je voudrais commencer par la création d'un 3-D La triangulation de Delaunay des points. Cela permettra de combler le volume autour des points avec une série d'éléments tétraédriques avec les points que leurs sommets, et vous pouvez trouver l'ensemble de faces triangulaires qui forme l'enveloppe extérieure du volume à l'aide de la
convexHull
méthode de laDelaunayTri
classe.Voici un exemple qui génère 200 points aléatoires uniformément distribués dans le cube unité, crée un maillage tétraédrique pour ces points, puis trouve la 3-D de l'enveloppe convexe du volume:
OriginalL'auteur gnovice
Vous pourriez traiter vos données d'un échantillon à partir de trois dimensions, la densité de probabilité, et d'estimer que la densité sur une grille, par exemple, via un histogramme 3d, ou mieux un 3d densité du noyau de l'estimateur. Puis appliquer un seuil et d'en extraire la surface à l'aide
surface résultat
.Malheureusement,
hist3
inclus dans la boîte à outils de Statistiques est (malgré son nom) juste un histogramme 2d, etksdensity
ne fonctionne qu'avec des données 1d, donc vous aurez à mettre en œuvre les versions 3d de vous-même.OriginalL'auteur A. Donda