MATLAB: Définition de la couleur des lignes entre deux tracés matriciels sur le même graphique

Salut tout le monde, donc je suis sûr qu’il y a une réponse simple à cela, mais je ne peux pas vraiment le comprendre. Disons que j’ai deux matracies 4 × 4, X et Y que je veux tracer sur le même graphique par rapport à la même variable Z, je fais actuellement quelque chose comme ceci:
 
plot (X,Z,'.')
hold on
plot (Y,Z,'*')
title ({title})
legend ('X','Y')
 
Je veux que la couleur des tracés X et Y corresponde à différentes valeurs Z. Ainsi, par exemple, X (:, 1) et Y (:, 1) sont tous les deux rouges, X (:, 2) et Y (:, 2) sont tous les deux verts, etc.
J’espère que l’explication a du sens, toute aide serait très appréciée. Je sais que je pourrais utiliser une boucle for pour simplement tracer les colonnes individuellement, puis définir la couleur, mais je pensais qu’il pourrait y avoir un moyen beaucoup plus rapide?
Merci,
Volonté

Meilleure réponse

  • Il vous suffit de réinitialiser l’index de l’ordre des couleurs à chaque fois que vous démarrez les couleurs depuis le début
     

    X = [1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4]';
    Y = [1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4]'+4;
    Z = [1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4]'+(1:4);
    ax = axes();
    plot (X,Z,'.')
    hold on
    ax.ColorOrderIndex = 1; % <--- reset the ColorOrderIndex to 1
    plot (Y,Z,'*')