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 :

Problème variable locale sur MATLAB


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut Problème variable locale sur MATLAB
    Bonjour,

    Je réalise actuellement une interface graphique a l'aide du logiciel
    matlab version R2006a et je rencontre un problème.

    J'ai tout d'abord créer mon interface graphique à l'aide du "guide" puis
    je l'ai récupéré dans ma fenêtre de commande sous forme de script.
    Puis j'ai rentré les différentes lignes de code necessaire au
    fonctionnement de mon interface.

    Et c'est la ou j'ai rencontré un problème.
    Le but de l'interface est de commander un générateur et pour cela j'ai
    besoin de récupérer les variables définis dans les différents fonctions
    de l'interface.
    Le problème c'est que ces variables sont des variables locales et elles
    ne peuvent donc etre utilisées en dehors de leur femplacement. De plus
    elle n'apparaissent pas dans le workspace.

    J'ai donc essayé la fonction whos mais il n'y a aucune variable de
    reconnue.

    Auriez vous une solution afin que je puisse récupérer ces variables
    locales?

    Je vous remercie d'avance et je reste a votre dispositon pour n'importe
    quelles questions.

  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
    Bonjour,

    Plusieurs solutions existent pour transférer des données d'un workspace à l'autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    %Dans le code du GUI :
    save monfichier.mat;%sauvegarde TOUTES les variables, help save pour voir comment sauvegarder seulement certaines variables
     
    %Dans le workspace Matlab :
    load monfichier.mat;
    Si tu n'as que quelques variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    %Dans le GUI
    setppdata(0,'donnee1',donnee1);%A faire pour chaque variable souhaitée
     
    %Dans Matlab
    donnee=getappdata(0,'donnees1');
    Et il y a sûrement encore plein d'autres solutions...

    Caroline

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut
    le problème c'est quel n'apparaissent pas a la base dans mon workspace....c'est ça que j'aimerais bien faire....

  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
    Il est possible d'utiliser ASSIGNIN, mais les solutions données par caro95470 sont bien meilleures

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 71
    Par défaut
    donc il faut que je mettes le setappdata dans le programme de l'interface et le get sur un nouveau .m c ca?

  6. #6
    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
    Oui.
    Utilise le setappdata sur la variable après lui avoir donner la valeur que tu souhaites récupérer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    %n'importe où dans le fichier .m du GUI
    valeur=3;
    setappdata(0,'mavaleur',valeur);
    Après tu peux la récupérer où tu veux (workspace Matlab ou autre fonction suivant ce que tu veux en faire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valeur= getappdata(0,'mavaleur');
    Attention si tu veux la mettre à jour, il faudra refaire un setappdata, ce n'est pas mis à jour automatiquement.

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

Discussions similaires

  1. problème d'axes sur MATLAB
    Par rolandperes dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/07/2015, 17h07
  2. problème Blast local sur serveur RedHat
    Par jobim08 dans le forum Administration système
    Réponses: 0
    Dernier message: 18/02/2009, 17h01
  3. Problèmes Variables locales
    Par JUPIL dans le forum MATLAB
    Réponses: 6
    Dernier message: 26/04/2008, 18h51
  4. problème variable publique sur userform
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2007, 06h36
  5. Réponses: 2
    Dernier message: 11/09/2006, 12h22

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