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 :

Problème de récupération de données en vue de les tracer [Débutant]


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur Chercheur
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur Chercheur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut Problème de récupération de données en vue de les tracer
    Bonjour à tous,

    Alors je viens vers vous, car je m'arrache les cheveux sur un truc tout bête, et je n'aimerais pas devenir complètement chauve avant l'heure. Je construis en ce moment une application graphique qui doit tracer deux signaux après appui sur un bouton. Après voir parcouru les différents tutos présents sur ce site, voici le code utilisé.

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    %%%%%%%%%%%%%%%%%%%%%%%%%%%
    %Début Fonction Principale%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%
    function newtestgraph2
     
    %création de la figure
    figure('units','pixels','position',[250 250 1000 150],'numbertitle',...,
    'off','name','testrécup','tag','interface');
     
     
     
    %création de l'objet Pushbutton go!!
    u1=uicontrol ('style','pushbutton','units',...,
    'normalized','position',[0.6 0.5 0.1 0.05],...,
    'string','go!!','callback',@sig,'tag','recup_data');
     
     
    %axes
    axes('units','normalized','position',[0 0.65 0.5 0.3]);
    axes('units','normalized','position',[0 0.3 0.5 0.3]);
     
    tab=[0 0 0]; %initialisation de la variable contenant la base de temps, le 1er %signal et le deuxième signal
     
    setappdata(gcf,'donnees_tab',tab);%enregistrement de la variable
     
     
     
    %%%%%%%%%%%%%%%%%%%%%%%%%
    %Fin Fonction Principale%
    %%%%%%%%%%%%%%%%%%%%%%%%%
     
    %%%%%%%%%%%%%%%%%%%%%%%%%
    %Début Sous-Fonction Sig%
    %%%%%%%%%%%%%%%%%%%%%%%%%
     
    function sig(obj,event)
     
    tab=getappdata(gcbf,'donnees_tab');
    f=1;
    t=0:0.01:1;
    sig1=cos(2*pi*f*t);%1er signal
    sig2=cos(2*pi*f*t);%2ème signal
    tab=[t sig1 sig2];
    h=findobj('parent',gcbf,'style','text','tag','recup_data');
    set(h,tab);
    setappdata(gcbf,'donnees_tab',tab);
    A=getappdata(gcbf,'donnée_tab')
    Comme vous pouvez le voir, pour le moment je ne demande pas à Matlab de tracer les signaux, mais j'aimerais d'abord vérifier que je récupère bien quelque chose à l'aide de la variable A. Lorsque j'exécute mon programme et que j'appuie sur le bouton de lancement de mon application, la variable A est égale à une matrice vide. J'en déduis donc que les changements opérés sur la variable tab n'ont pas été enregistré, et donc que ce que je fais est faux.

    J'aimerais donc savoir ou est mon erreur.

  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
    Citation Envoyé par Grounet Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    h=findobj('parent',gcbf,'style','text','tag','recup_data');
    set(h,tab);
    Je ne suis pas sûr de bien comprendre ce que sont censées faire les lignes ci-dessus.

    La variable h devrait normalement être vide vu qu'aucun objet ne correspond aux paramètres passés à FINDOBJ...

    Et l'utilisation de SET est mauvaise. Il faut l'utiliser comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(<identifiant de l'objet>, <nom de propriété>, <valeur a affecter à la propriété>)

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur Chercheur
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur Chercheur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut
    huuum...je dois faire une mauvaise utilisation de la fonction findobj. En fait, j'ai voulut que la fonction h corresponde à mon objet pushbutton "go!!". J'espérais récupérer par ce biais la matrice tab contenant la base de temps et les signaux à tracer. Mais apparemment je dois être dans l'erreur. Le soucis, c'est que je ne vois toujours pas comment récupérer cette matrice dans mon programme principal.

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

    h obtenu par la fonction FINDOBJ n'est en aucun cas une fonction, mais un handle. Si tu souhaites obtenir celui de ton pushbutton "go", c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    h=findobj('parent',gcbf,'style','pushbutton','tag','recup_data');
    Mais il ne te servira en rien à la sauvegarde de tab. Que souhaites-tu en faire exactement?
    Pour info le même handle est déjà disponible par obj de function sig(obj,event).

    La sauvegarde et obtention des variables (par la méthode du tutoriel 2.2 SETAPPDATA, GETAPPDATA et FINDOBJ) se fait à l'aide des fonctions SETAPPDATA, GETAPPDATA comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setappdata(gcf,'donnees_tab',tab);% enregistrement de la variable
    tab=getappdata(gcbf,'donnees_tab'); % obtention de la variable enregistrée
    En faisant attention comme le souligne Dut à avoir la même orthographe pour les deux.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur Chercheur
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Ingénieur Chercheur
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Par défaut
    OUps....merci DUT de m'avoir souligné cette bévue , c'était le premier truc à regarder pourtant.

    Pour Winjerom, en fait, je voudrais importer ma matrice tab dans le programme principal afin de tracer les signaux avec la fonction "plot" dans les deux objets axes avec que j'ai créé. Mais en me replongeant dedans, je me demande si je ne me fourvoie pas en opérant de cette manière.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il faudrait nous en dire plus sur la logique de fonctionnement de ton interface...
    Car si comme tu nous dit dans ton premier message:
    Citation Envoyé par Grounet Voir le message
    Je construis en ce moment une application graphique qui doit tracer deux signaux après appui sur un bouton
    Tu n'as pas besoin de récupérer tab dans le principal, il te faut juste un simple plot dans le Callback de ton pushbutton.

    Je te conseille de regarder cette discussion: [plot] choix entre deux Axes

  7. #7
    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
    Citation Envoyé par Grounet Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setappdata(gcbf,'donnees_tab',tab);
    A=getappdata(gcbf,'donnée_tab')

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

Discussions similaires

  1. Réponses: 31
    Dernier message: 27/07/2006, 13h51
  2. Réponses: 22
    Dernier message: 05/07/2006, 15h21
  3. [MySQL] problème de récupération de données incompréhensible
    Par yanice dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 02/07/2006, 22h45
  4. [MySQL] Problème de récupération de données
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 05/04/2006, 15h13
  5. Problème de récupérations de données dans une table mysql
    Par Helpine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/03/2006, 19h07

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