2016-07-06 1 views
0

ListDensityPlot [] de Mathematica peut prendre une liste de coordonnées 3D, où la 3ème coordonnée est un scalaire, l'appeler température ou concentration, etc. et retourner un diagramme de densité. La liste ressemblerait à quelque chose commeEquivalent de la fonction ListDensityPlot [] de Mathematica pour Matlab

temperature={{0,0,20},{0,1,25},...,{9,9,35}} 

en notation Mathematica. Mathematica interpole automatiquement (je suppose) sur les valeurs afin qu'elle renvoie une image continue et lisse avec une échelle de couleurs pour décrire les valeurs scalaires sur le plan 2D.

Existe-t-il quelque chose d'équivalent dans Matlab?

Merci

+0

[ 'contour'] (http://www.mathworks.com/help/matlab/ref/contour.html)? – excaza

+0

@excaza contour semble être l'équivalent de ContourPlot [] dans Mathematica, ne donne pas tout à fait une fonction de couleur à chaque point de la grille, il montre tous les points qui résolvent une équation ou une inégalité. Jusqu'à présent, il semble que pcolor soit la seule chose proche de DensityPlot. Mais ListDensityPlot de mathematica renvoie également un résultat continu pour les listes, alors que pour autant que je sache, pcolor ne renvoie que des taches pixellisées de couleur et j'ai besoin de lancer ma propre interpolation pour obtenir un résultat lisse. Ce qui est très improbable à courir plus vite et mieux que l'interpolation de Mathematica – Craig

Répondre

0

Vous pouvez utiliser la fonction de triangulation de Delaunay de vos points plans, puis générer une surface sur la triangulation.

Il ressemblerait à quelque chose comme ceci:

Points=[xpoints, ypoints, zpoints]; 
tri=delaunay(Points(:,1), Points(:,2)); 
figure 
trisurf(tri, Points(:,1), Points(:,2), Points(:,3)) 
shading interp 
colormap jet 
colorbar EastOutside