IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

probleme d'attribution des couleurs


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut probleme d'attribution des couleurs
    bonjour
    je suis entrain de tracer des courbes Vds=f(Id) acquise par une carte d'acquisition pour des commandes Vgg et Vdd pour cela j'utilise le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    ai=analoginput('nidaq',1);
    ao=analogoutput('nidaq',1);
    ic=addchannel(ai,[2 0]);
    ic.inputrange=[0 10];
    ic(1).SensorRange=ic(1).InputRange;
    ic(1).UnitsRange=ic(1).InputRange;
    ic(1).ChannelName='Vds';
    ic(2).UnitsRange=ic(2).InputRange*10;
    ic(2).SensorRange=ic(2).InputRange;
    ic(2).Units='mA';
    ic(2).ChannelName='Id';
    oc=addchannel(ao,[0 1]);
    oc.UnitsRange=oc(1).OutputRange;
    oc(1).ChannelName='Vin';
    oc(2).ChannelName='Vgg';
    Vds=[];
    Id=[];
    VgsList=[-4.5:0.5:0];
    for Vgs=VgsList
        data=[]
        for Vgg=5:0.25:5
            putsample(0,[Vin,Vgg]);
            data=[data; getsample(ai)];
        end
        Vds=[Vds data(:,1)];                 %toute les lignes, 1ére collone
        Id=[Id data(:,2)];                      %toute les lignes, 2ére collone
    end
    legendStr={};
    for Vgg=1:length(VggList),
        legendStr{VggCt}=[num2Str(VggList(VggCt)) 'V'];
    end
    h=plot(Vds,Id);
    legend(h(0:end),legendStr(0:end));
    xlabel('V {ds} (V)');
    ylabel('I {d} mA');
    title('\bf{Lines of constant V {gs} for JFET');
    j'arrive pas à trouver le problème de ma légende car jai toute les graphes en une seule couleur
    les données sont présentées en matrices , normalement je doit utiliser legendStr avant de faire ma legende
    merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    L'indexage des tableaux commence à 1 sous MATLAB.

    Je doute donc que la ligne suivante fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    legend(h(0:end),legendStr(0:end));
    Pourquoi ne pas simplement faire ceci ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut probleme d'attribution des couleurs
    bonsoir
    merci sa fonctionne
    mème quand j'utlise 1:end sa fonctionne. ce qui veut dire faire une legende pour toute les différentres vbaleurs de la commande

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut probleme d'attribution des couleurs
    rebonsoir
    comment je peux maintenant faire une conversion d'une matrice de n lignes à une legende, chaque ligne va etre une donnée de la legende
    merci

  5. #5
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Pour celà il faut transformer ta matrice en cell array de string, si ta matrice contient des valeurs numériques, tu peux utiliser la méthode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    legend_str = arrayfun(@num2str, M, 'UniformOutput', false);
    legend(legend_str);
    Bonne journée,
    Duf

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut probleme d'attribution des couleurs
    merci je vais éssayer
    bsoir

Discussions similaires

  1. Probleme d'affichage des couleurs sur navigateurs
    Par love-part dans le forum Windows XP
    Réponses: 0
    Dernier message: 04/01/2013, 11h34
  2. probleme de gestion des attributs en session
    Par riadhhwajdii dans le forum JSF
    Réponses: 0
    Dernier message: 21/08/2009, 12h54
  3. Réponses: 12
    Dernier message: 20/05/2009, 15h32
  4. probleme de transparence des couleurs
    Par info_amel dans le forum OpenGL
    Réponses: 15
    Dernier message: 29/03/2008, 00h38
  5. Attribution des couleurs aux barres du graphique
    Par Amkhar dans le forum Excel
    Réponses: 10
    Dernier message: 23/08/2007, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo