2012-12-07 4 views
2

J'ai l'axe X avec les valeurs [2,6,10] et pour l'axe Y [0,5,0.4,0.2,0.2, .... 0.5], toutes les valeurs comprises entre 0 et 1.Comment tracer des points spécifiques dans matlab?

les points correspondant à 2, disons 1/3 et les 1/3 restants pour 6 et restant 1/3 pour 10. Les points correspondant à 2 peuvent avoir des valeurs comprises entre 0 et 1, il en est de même pour le point 6 et le point 10. Comment puis-je tracer cela?

Répondre

3

Je suppose que vous avez un moyen de faire correspondre chaque valeur Y à sa valeur X correspondante. En générant un vecteur de même longueur que Y avec ces valeurs X, ils peuvent ensuite être tracés les uns par rapport aux autres.

Les deux vecteurs auront alors la forme suivante:

X = [2,6,2,10,6,6,10,2,....6] 
Y = [0.5,0.4,0.2,0.2,0.9,0.3....0.5] 

Voici un exemple de code

% X-data 
X = [2,6,10]; 

% Generate random Y-data 
n1 = 10; 
n2 = 20; 
n3 = 30; 
n = n1 + n2 + n3; 
Y = rand(1,n); 

% Match X indices corresponding to Y 
% Xall = [2,2,2,...,2,6,6,6,...,6,10,10,10,...,10] 
X1 = zeros(1,n1); 
X1(:) = X(1); 
X2 = zeros(1,n2); 
X2(:) = X(2); 
X3 = zeros(1,n3); 
X3(:) = X(3); 
Xall = [X1 X2 X3]; 

plot(Xall,Y,'o') 
xlim([min(X)-2,max(X)+2]) 

qui va générer une figure de la forme suivante

Random Y-data plotted against three distinct X-values.

1
a=[0.5,0.4,0.2,0.2,....0.5] 
b=[1:3:length(a)] 

plot(a(b)) 
Questions connexes