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 :

tracer courbe dans objet axes


Sujet :

Interfaces Graphiques

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 64
    Par défaut tracer courbe dans objet axes
    Bonjour,

    je suis debutant dans matlab et j'essaye de creer une interface graphique pour tracer une courbe. J'ai deux objets un pushbutton et un axes. Je voudrais que quand j'appuie sur le bouton ma courbe s'affiche dans mon objet axes, voici mon code :
    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
    -----------------------------------------------------
    -------------------------------------------------------
    function two_axes
    fh = figure;
    bh1 = uicontrol(fh,'Position',[20 290 60 30],...
                         'String','Plot 1',...
                         'Callback',@button1_plot);
     
    ah1 = axes('Parent',fh,'units','pixels',...
               'Position',[120 220 170 170]);
    end
     %------------------------------------------------
     function button1_plot(hObject,eventdata)
           t=[0:2*pi/100:2*pi];
           x=sin(t);
           plot(t, x,ah2);
     end
    -----------------------------------------------------
    -------------------------------------------------------
    voila l'interface s'affiche bien, mais par contre le "plot" ne marche pas.
    Si quelqu'un aurait une idée ?

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je vois 2 erreurs :
    Il y a un end qui traine après la déclaration de ta 1ère fonction => met le plutôt à la fin pour que la fonction button1_plot soit une nested function (voir Développement efficace des interfaces graphiques)
    Dans la fonction button1_plot : si tu veux forcer l'axe dans lequel tu veux le tracé tu dois mettre le handle de l'axe en 1er argument de plot et d'autre part tu utilises une variable ah2 qui n'existe pas.
    Je pense que cela devrait plutôt être :

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 64
    Par défaut
    je te remercie ca marche !! (pour le ah2 c'etait une erreur de frappe)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 64
    Par défaut
    désolé, je reviens a la charge,

    enfaite mon but final c'est de tracer une courbe dont les valeurs sont enregistrer dans le fichier "data" sur deux colonnes;

    donc a la place de : plot(ah1,t, x) -> je marque plot(ah1, data(:,1), data(:,2));
    et ça ne marche pas?

    aurais-tu une idée?

  5. #5
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par chris069 Voir le message
    aurait tu une idée?
    Non car :
    - je ne sais ce qu'est data
    - je ne sais pas ce qui ne marche pas (message d'erreur ?)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 64
    Par défaut
    alors enfaite j'ai un fichier .txt (data.txt) qui contient deux collone et je voudrais tracer la premiere colonne en fonction de la deuxieme,

    *j'ai un fichier extraction.m (voici le code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            load -ascii data.txt;
           save data.mat;
           load data.mat;
    *dans mon autre fichier principale, voici mon code :
    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
     fontion vocallo
         global  handles
         handles(1)=figure('units','pixels',...
                                 'position',[250 250 800 700],...
                                 'name','VOCALLO',...
                                  'tag','interface');
     
         handles(2)=uicontrol('style','pushbutton',...
                                     'units','normalized',...
                                      'position',[0.7 0.705 0.08 0.04],...
                                      'callback',@run_prgm,...
                                      'tag','bouton_RUN');
     
         handles(3)= axes('units','pixels',...
                                'Position',[500 30 250 150]);
      end
     %----------------------------------
       function run_prgm(obj,event)
       global handles
           extraction;
           plot(handles(3), data(:,1),data(:,2));
       end
     %----------------------------------

    Au debut j'ai fait exactement le meme programme sauf que je traçais ma courbe sinus et ça marchait, mais la ça me dit :

    Error in ==> essai_vocallo>run_prgm at 366
    plot(handles(3), data(:,1),data(:,2));

    ??? Error while evaluating uicontrol Callback

Discussions similaires

  1. [Débutant] afficher image jpg dans l'objet axes du GUI
    Par tchabalabala dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 30/04/2009, 16h07
  2. Afficher la console MATLAB dans un objet Axes ?
    Par Truth dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 21/06/2008, 12h19
  3. Tracer courbes sur un axes précis
    Par telecofr dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 08/02/2008, 15h02
  4. Affichage de plusieurs courbes dans un meme "axes"
    Par DOC doc doc dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 11/09/2007, 11h04
  5. Tracer une courbe dans un formulaire ?
    Par jessy212 dans le forum Access
    Réponses: 5
    Dernier message: 04/09/2006, 16h46

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