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 :

Impossible de relier mes points avec plot [Débutant]


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut Impossible de relier mes points avec plot
    Bonjour,


    Dans ce message, j'utilise une fonction plot pour tracer une courbe, mais MATLAB ne me relie pas les points, je ne comprends pas pourquoi.


    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce sujet de relier les points dans une boucle a été abordé un bon nombre de fois sur ce forum. Une recherche te donnera les éléments de réponse.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Oui j'ai vu, mais je n'ai pas compris les histoires de "handles"...

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    ça dépend de ton problème, mais normalement, tu n'as pas besoin de handle ici.

    Peux-tu nous montrer ton code?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    désolé il y a pas mal de variables...
    Mais en fait il n'y a que A et L qui ont un intérêt pour le traçage

    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
       hold on; 
       for z = 1  
          for i = 0:100:6300   
              T(i+1) = 2200 + i; 
    
              A(z) = T(i+1);
    
              Blu = ((l^3)*(4.87E7))/(8*pi*h);
              Flu = (4*E0*h*c*me*Blu)/(e^2*l);
              B = ((2*h*c^2)/(l^5))*(1/(exp((h*c)/(l*kb*A(z)))-1));
              Kline = ((e^2)*Flu*1E-4*n0)/(4*E0*me*c);
              
              L = B*Kline ;         
         
              plot(A,L);
          end
       end
       hold off;

  6. #6
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    pour tracer tes points et qu'ils soient automatique reliés, tu peux stocker les variables qui t'interresse (A et L) dans un tableau mAL puis faire le plot (en dehors de tes boucle for) du genre :
    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
     
    mAL = zero(63,2);
          for i = 0:100:6300   
              T(i+1) = 2200 + i; 
     
              A(z) = T(i+1);
     
              Blu = ((l^3)*(4.87E7))/(8*pi*h);
              Flu = (4*E0*h*c*me*Blu)/(e^2*l);
              B = ((2*h*c^2)/(l^5))*(1/(exp((h*c)/(l*kb*A(z)))-1));
              Kline = ((e^2)*Flu*1E-4*n0)/(4*E0*me*c);
     
              L = B*Kline ;         
     
              mAL(i,:) = [A L];
          end
    plot(mAL(:,1),mAL(:,2),'b-')

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    On nest bien d'accord que pour :
    il n'y aura qu'en seule itération et donc cela reviens à écrire :
    c'était ce que tu voulais faire?


    A quoi sert le tableau T? (car dans ton code, il ne sert à rien, autant écrire directement : A(z) = 2200 + i;)
    A la base comment voulais -tu construire A? On irait peut-être plus vite si tu nous disais ce que tu cherches à faire?

    dans tout les cas, la méthode la plus simple est de faire les calculs dans ta boucle et de conserver tous les résultats qui t'intéressent dans un tableau (car pour l'instant tu écrases les résultats de L à chaque itération par exemple), puis de faire le tracer en dehors de ta boucle.
    Edit => voir méthode de le fab.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    En fait je suis pas vraiment très doué en MATLAB ^^
    J'ai un cylindre qui émet un rayonnement lumineux. Ce rayonnement dépend de la température intérieure du cylindre. Et la température dépend du point où l'on se situe dans le cylindre.

    Et mon but final c'est de tracer le rayonnement lumineux en fonction du rayon.

    Ici le rayonnement c'est L, le rayon c'est z, et la température c'est A.

    Et j'ai pas fait , parce que ça me créé un tableau qui change de taille à chaque itération.
    J'ai [2200] après [2200 2300], [2200 2300 2400]...
    Et moi je veux juste récupérer 2200, 2300, 2400,... et les utiliser pour mon axe des abscisses.


    Et fab ton code me met
     ???Subscript indices must either be real positive integers or logicals.
    Est-ce qu'il faut mettre mAL(6300,: ) au lieu de mAL(i,: ) ???

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Donc z varie, non?

    que représente i?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  10. #10
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par le fab Voir le message
    Et fab ton code me met
     ???Subscript indices must either be real positive integers or logicals.
    on dirait qu'il prend i le nombre imaginaire ... as tu changé le nom i dans la boucle for ?? sinon ça marche

    Citation Envoyé par le fab Voir le message
    Est-ce qu'il faut mettre mAL(6300,: ) au lieu de mAL(i,: ) ???
    non, le but et de remplir chaque ligne d'un tableau de 63 lignes (tu va de 100 en 100 dans ta boucle) et deux colonnes (A et L) puis de tracer L = f(A)[/QUOTE]

    edit : désolé pour la doublette me suis gourré dans l'edit

  11. #11
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par le fab Voir le message
    on dirait qu'il prend i le nombre imaginaire ... as tu changé le nom i dans la boucle for ?? sinon ça marche
    Le problème vient du fait que l'incrémentation de i commence à 0, or l'indexage des tableaux commence à 1 dans matlab. (Subscript indices must either be real positive integers or logicals.)


    Citation Envoyé par le fab Voir le message
    non, le but et de remplir chaque ligne d'un tableau de 63 lignes (tu va de 100 en 100 dans ta boucle) et deux colonnes (A et L) puis de tracer L = f(A)
    Le problème de ta méthode est que tu vas créer des lignes remplies de 0 inutiles dans le tableau mAL...

    Il faudrait que clem3900 nous donne toutes les données du problème pour pouvoir lui proposer une solution.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  12. #12
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    c'est pas faux

    dans l'idée un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mAL(i/100+1,:) = [A L];
    devrait faire l'affaire

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2012
    Messages : 45
    Points : 28
    Points
    28
    Par défaut
    Ca fonctionne le fab!!
    Merci beaucoup.
    Machine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Impossible d'alimenter mes Tables avec Formulaire
    Par byters dans le forum IHM
    Réponses: 7
    Dernier message: 02/06/2013, 08h27
  2. Réponses: 0
    Dernier message: 21/12/2012, 12h30
  3. [JFreeChart] Ordre pour relier des points avec XYLineAndShapeRenderer
    Par Yann_69 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 18/09/2012, 16h53
  4. Impossible de relier des points avec plot
    Par Sylver52 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/05/2009, 08h21
  5. pb relier des points avec la SDL en C
    Par rafale001 dans le forum SDL
    Réponses: 1
    Dernier message: 25/02/2007, 15h42

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