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 de generation tables [plot] sous Matlab


Sujet :

MATLAB

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut Probleme de generation tables [plot] sous Matlab
    Bonjour,
    je suis étudiant et j'essaie d'avancer sur Matlab que j'utilise dans ma formation.Bref, je vous raconte mon petit problème sachant qu'il est plus méthodologique que technique . En fait, j'ai une table Data qui contient trois colonnes X,Y,Z et pas mal de données (valeurs) et je voulais représenter Y en fonction de Z mais ceci pour chaque valeur de Z.je donne un exemple pour ceux qui n'arrivent pas à voir mon problème:
    Prenons par exemple la matrice suivante:
    X Y Z
    1 6 12
    2 8 12
    5 9 12
    5 6 13
    6 9 13
    Ainsi, je voulais avoir deux figures une correspond à Y=f(X) pour Z=12 et l'autre pour Z=13... j'espère que j'étais clair sur mon problème..
    Ceux qui peuvent m'aider, j'en serai très reconnaisant..Merci d'avance
    bahja29

  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
    Quel est le but ?
    Que représente physiquement ces valeurs ?

    As-tu au moins essayé de coder quelque chose ( même faux) ?

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    désolé je crois sur l'intitulé je n'étais pas clair, je voulais dire génération Graphes à partir de la meme table,
    Oui pour répondre à tes questions, merci d'abord d'avoir répondre , ah en fait l'exemple que j'ai donné je l'ai fais comme ça juste pour montrer ce que je veux car je travaille sur des données un peu volumineux
    Ah en fait je voulais juste voir l'évolution de la variable Y en fonction de X dans tous les cas, car quand j'ai essayé juste plot(X,Y) il me donne toutes les variations donc moi je voulais raffiner la visualisation... j'espere que j'ai répondu à ta question
    Merci
    bahja29

  4. #4
    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
    Essaie en utilisant la fonction UNIQUE sur la troisième colonne pour récupérer chaque valeur unique de z

    Puis tu fais une boucle FOR-END sur chaque valeur unique, et tu stockes toutes les valeurs de xy correspondantes.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Ok, merci. je vais essayer à appliquer cette idée et je retourne à vous si j'ai d'autres problèmes, enfin je vais retourner dans tous les cas au moins pour vous remercier si je réussisses .
    Merci,
    bahja29

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Re-Bonjour,
    J'ai bien saisi ce que tu voulais faire, mais j'ai juste une petite question, j'ai bien compris que je vais faire une boucle for-end sur les valeurs uniques de ma colonne Z, mais à l'intérieur comment j'accede aux lignes qui correspondents et les stocker comme tu dis dans un autre vecteur.mon probleme comment j'y accede et les stocket ??????
    Merci pour ta compréhension vu que je suis encore débutant et pour ton aide
    bahja29

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Bonjour,
    Il y a personne qui peut m'aider la-dessus, car je compte vraiment sur ce point, j'ai essayé de détourner les choses et dans la documentation sur Internet, on parle souvant sur les basiquesd mais pas sur les astuces...
    Donc Si vous voulez bien, pouviez vous m'aider et j'en serasi reconnaissant.
    Merci et à très bientôt j'espere..
    bahja29

  8. #8
    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
    C'est à toi de nous montrer ce que tu as essayé de coder sous MATLAB...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Ah bon, excusez moi je croyais j'étais clair sur le principe que je voulais traiter, donc je vous envoie ce que j'ai essayé de coder:
    Soit data la table que je veux traiter, voila mon modeste programme:
    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
    X=data(:,5);
       Y=data(:,3);
       Z=unique(data(:,2);
       A=zeros(1,500);  %500 est donné au pif comme valeur maximale, cette étape pour initialisé ou je veux stocker les données que je veux 
       B=zeros(1,500);
       debut=1;  %cette variable va me permettre à parcourir la table
    for (k=Z)
       for (i=debut:M)    %M est le nombre de lignes de data
           while(data(i:2)==k)
                  A(1,i)=data(i,5);
                  B(1,i)=data(i,3);
                  i++;
           end  %fin while
           debut=i;
           figure(i);
           plot(A,B);
        end  %fin 2eme boucle for
    end  %fin 1ere boucle for
    Merci pour votre aide...
    bahja29

  10. #10
    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
    Il y a déjà beaucoup d'erreurs de syntaxe dans ton code et même l'algorithme est à améliorer

    Ta première boucle est fausse.
    Tu dois boucler sur le nombre de valeur de Z, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for k = 1:numel(Z)
        Z(k)
    end
    Ensuite, tu utilises ta boucle WHILE-END ne sert à rien.
    Tu devrais simplement la remplacer par un test IF-END (avec la même condition à tester). En faisant ceci, tu vas avoir un petit problème sur l'indice i dans A(1,i) et B(1,i)... mais ce n'est pas insurmontable avec une variable supplémentaire

    Pour finir (pour le moment), les lignes suivantes ne sont pas nécessaire dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       A=zeros(1,500);  %500 est donné au pif comme valeur maximale, cette étape pour initialisé ou je veux stocker les données que je veux 
       B=zeros(1,500);

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Merci pour ces corrections, je vais essayer d'appliquer ce que tu viens de me dire, je suis d'accord avec toi concernant la boucle While
    Merci pour votre aide
    A très bientôt

Discussions similaires

  1. [Débutant] plot 3D sous matlab
    Par nina02 dans le forum MATLAB
    Réponses: 1
    Dernier message: 26/05/2011, 22h38
  2. plot and save sous matlab
    Par el-bey2 dans le forum MATLAB
    Réponses: 3
    Dernier message: 17/02/2011, 16h47
  3. Probleme de generation dun fichier excel sous vb.net
    Par l_achraf dans le forum Windows Forms
    Réponses: 8
    Dernier message: 30/12/2008, 00h13
  4. Problème de version excel sous matlab
    Par mariono dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/07/2007, 13h08

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