Bonjour à tous,
J'ai une question consernant matlab, sur les graphiques comme annoncé dans le titre.
Comme vous le savez, il est possible d'incrémenter les couleur en RGB dans matlab, très pratique sur une boucle quand on veut ploter plein de trucs en même temps. Le soucis avec la boucle étant qu'elle peut prendre un max de temps, hélas.
Ma question est donc la suivante : peut-on devenir indépendant de cette boucle?
Traduction : dans mon script, j'utilise un plot de ce type :
plot(Y1(:,1:end),Y2(:,1:end),'.','color','b','MarkerSize',7);
Premier constat avec ce plot, matlab comprend bien qu'il sagit de ploter Y1(:,1) Y2(:,1), ... , Y1(:,end) Y2(:,end). Pas de soucis là dessus, et ce fut d'ailleurs une agréable surprise pour moi de voir que cela marchait.
Cependant, maintenant, je souhaiterai passer ce plot sous la forme suivante :
plot(Y1(:,1:end),Y2(:,1:end),'.','color',color(:,1:end),'MarkerSize',7);
Où le tableau color est un tableau définit comme :
1 2 3
| for k=1:N
color(:,k)=[k/((N+1)) k/((N+1)) 0.5];
end |
Et de même nombre de colonnes que Y1 et Y2. Normalement il n'y a donc pas de problèmes liés aux dimensions de tableau.
Cependant, en introduisant donc la syntaxe :
plot(Y1(:,1:end),Y2(:,1:end),'.','color',color(:,1:end),'MarkerSize',7);
Soit un plot en couleur variable au lieu de fixe, matlab me renvoi l'erreur suivante :
??? Error using ==> plot
Color value must be a 3 element numeric vector
Cela signifiant donc qu'il n'arrive pas à lire colonne à colonne les éléments du tableau color contrairement à ceux d'Y1 et Y2.
Quelqu'un aurait-il une idée de comment contourner le problème?
Merci d'avance,
Marlan
PS : il n'est malheureusement pas envisageable de recourir à une syntaxe du type :
1 2 3 4 5
| figure;
hold on
for k=1:N;
plot(Y1(:,k),Y2(:,k),'color',color(:,k))
end |
du fait du trop grand nombre d'éléments contenu dans N.
Partager