Tracer des points 3D dans Matlab
Je veux tracer des points 3D dans Matlab
dans des couleurs différentes en fonction de la valeur. J'ai le code suivant, mais cela ne fonctionne pas car plot3d
a besoin d'un vecteur.
x = vdhf_data.data(:,1);
y = vdhf_data.data(:,2);
z = vdhf_data.data(:,3);
data = vdhf_data.data(:,4);
grid on
hold all
for k=1:length(x)
if data(k) < 6
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
else
plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g')
end
end
Façon de le faire en Matlab?
OriginalL'auteur Razer | 2012-02-23
Vous devez vous connecter pour publier un commentaire.
Je voudrais utiliser
Cela permettra de tracer tous les points à la même taille et la couleur en fonction de la valeur des données, en utilisant la palette de couleurs. Vous pouvez aussi utiliser les données à l'échelle de la taille de chaque point.
ones(size(x))
la taille du vecteur dans scatter3 peut être la valeur scalaire de la même taille ou un vide ([]
) pour la taille par défaut.Oui, il peut être un scalaire. Je ne veux avoir deux markercolors. Est-il possible d'ajouter une ligne au lieu d'une boucle?
Vous aurez juste besoin d'ajuster votre palette de couleurs. Donc, pour les deux couleurs (rouge & bleu), vous faites quelque chose comme cela
colormap([ones(50,1)*[1 0 0]; ones(50,1)*[0 0 1]])
Cela rend la couleur de la division dans le milieu de la plage de données. Si vous voulez qu'il soit à un nombre spécifique que vous avez à l'échelle de la(n-a,1) (n+a,1) en conséquenceOriginalL'auteur zamazalotta