Je souhaite tracer des points 3D dans Matlab
dans différentes couleurs en fonction d'une valeur. J'ai le code suivant, mais cela ne fonctionne pas car plot3d
a besoin d'un vecteur.Tracer des points 3D dans Matlab
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
Comment faire ça dans Matlab?
je crois au lieu de 'ceux (la taille (x))' le vecteur de taille dans scatter3 peut être une valeur scalaire pour la même taille ou un vide ('[]') pour la taille par défaut. – yuk
Oui, il peut y avoir un scalaire. Je veux seulement avoir deux markercolors. Est-il possible d'ajouter ceci dans une ligne au lieu d'une boucle? – Razer
Vous aurez juste besoin d'ajuster votre palette de couleurs. Donc, pour deux couleurs (rouge et bleu), vous ferez quelque chose comme ceci 'colormap ([ones (50,1) * [1 0 0]; ones (50,1) * [0 0 1]])' Cela rendra la division des couleurs au milieu de la plage de données. Si vous voulez qu'il soit à un nombre spécifique, vous devez redimensionner ceux (n-a, 1) ceux (n + a, 1) en conséquence – zamazalotta