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

Interfaces Graphiques Discussion :

Afficher deux courbes les unes après les autres


Sujet :

Interfaces Graphiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 89
    Points : 43
    Points
    43
    Par défaut Afficher deux courbes les unes après les autres
    Bonjour. Voilà mon problème:

    Après avoir récupérer les données d'un fichier excel, je tracer mon graphe sur AxesPlot.

    J'utilises les variables globales.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function fAffichSl()
     
    global G_Handles;
    global G_Wave;
    global G_Int;
    global G_NomData;
     
    axes(G_Handles.AxesPlot);
    plot(G_Wave, G_Int, 'r');
     
     
    xlabel('Fréquence  (GHz)');
    ylabel('Coefficient d''absorption (cm-1) ');
    title({strcat(G_NomData, ' : Coefficient d''absorption')});
    Ensuite grâce à un bouton calculer, je lance une procédure de calcul sur les ordonnées et à la fin, je désire réafficher mes nouveaux résultats (abscisses identiques, ordonnées) sur le graphe précédent sans que les première valeurs apparaissent.

    Comment puis je faire? Merci.

  2. #2
    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 : 40
    Localisation : France

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

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

    Le plus simple dans ton cas est de régler la propriété NextPlot de ton axes (au moment de sa création) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    axes(G_Handles.AxesPlot, 'NextPlot', 'replace');
    Mais normalement, c'est le réglage par defaut donc le fait de tracer une nouvelle courbe sur cette axe doit automatiquement l'effacer...

    Enfin, j'espère que ca pourra t'aider...

    Bon courage,
    Duf

    P.S. Les variables globales c'est pas bien...lol
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 89
    Points : 43
    Points
    43
    Par défaut
    Bonjour, ca ne marche toujours pas.

    Voilà ce que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ??? Error using ==> axes
    Too many input arguments.
     
    Error in ==> Base2>fTracer at 509
    axes(G_Handles.AxesPlot, 'NextPlot', 'replace');
    En fait le problème que j'ai quand je remet ma syntaxe

    "axes(G_Handles.AxesPlot);"

    suivi de "plot(a,b,'r')" , le fait de rajouter le plot me fait planter et j'obtiens le message d'erreur 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
     
     
    function fTracer()
     
    global G_Handles;
    global G_Freqinf;
    global G_Freqsup;
    global G_Wave;
    global G_Wave2
    global G_pas;
    global G_Int;
    global G_Int2;
     
     
    maxWave = max(G_Wave);
    minWave = min(G_Wave);
     
    nbpt=round((maxWave-minWave)/G_pas);
     
    binf2=round((G_Freqinf-minWave)/G_pas);
    bsup2=round((G_Freqsup-minWave)/G_pas);
     
    G_Wave2=G_Wave(binf2:bsup2);
    G_Int2=G_Int(binf2:bsup2);
     
    axes(G_Handles.AxesPlot);
    %axes(G_Handles.AxesPlot, 'NextPlot', 'replace');
    disp('Oki3!!')
    %figure(1);
    plot(G_Wave2,G_Int2,'r');
    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
    ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
    to change the limit.  Be aware that exceeding your available stack space can
    crash MATLAB and/or your computer.
     
    Error in ==> isfield at 39
     
     
    ??? Error using ==> struct2handle
    Error while evaluating uicontrol CreateFcn.
     
    ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
    to change the limit.  Be aware that exceeding your available stack space can
    crash MATLAB and/or your computer.
     
    Error in ==> isfield at 39
     
     
    ??? Error using ==> struct2handle
    Error while evaluating uicontrol CreateFcn.
     
    ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
    to change the limit.  Be aware that exceeding your available stack space can
    crash MATLAB and/or your computer.
     
    Error in ==> getappdata at 162
     
     
    ??? Error while evaluating uicontrol Callback.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 89
    Points : 43
    Points
    43
    Par défaut
    Sur la syntaxe fTracer(), il s'agit de axes(G_Handles.AxesPlot) tout simplement.

Discussions similaires

  1. [Turbo Pascal] Afficher les lettres les unes après les autres
    Par feugana1 dans le forum Turbo Pascal
    Réponses: 25
    Dernier message: 15/05/2010, 14h31
  2. Réponses: 9
    Dernier message: 24/01/2008, 12h53
  3. Réponses: 32
    Dernier message: 28/08/2007, 19h57
  4. [Débutant] Charger et afficher des images les unes apres les autres
    Par kharon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/03/2007, 08h51
  5. Ouvrir plusieurs boites de dialogues les unes après les autres
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 25/02/2007, 11h55

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