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 :

script appellé par une fonction aveugle aux workspace


Sujet :

Interfaces Graphiques

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 75
    Points
    75
    Par défaut script appellé par une fonction aveugle aux workspace
    Bonjour

    je suis entrain de réaliser une interface graphique pour un code qui m'a été passé, et naturellement je coince sur des détails dont je ne soupçonnais même pas l'existence...
    grosso modo j'ai réussis à réduire mon problème à un exemple trivial :

    j'entre deux variables dans le workspace 'base' : a=1 et b=2
    ensuite je crée le script 'test.m' suivant :

    quand je le compile, évidement les valeurs de a et b s'affichent.....

    maintenant je crée un autre script qui appelle le premier 'testtest.m' :

    là encore pas de problème tout tourne (heureusement)
    mais quand je fais de 'testtest.m' une fonction

    là les variables a et b bien "visible" dans le workspace ne le sont plus pour 'test.m'
    Je penses que c'est un changement d'espace de variable où, quand, comment, pourquoi... là je sèche complètement

    Merci d'avance pour votre aide

    PS : je poste sur ce forum parce que non réduit mon problème vient du fait que je n'arrive pas à faire qu'un script appelé à partir d'une fonction d'une interface graphique ait accès aux variables du workspace.

  2. #2
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Quelques explications dans la

    Existe-t-il plusieurs types de définitions de variables ?
    Quelle est la durée de vie des variables ?

    Donc c'est normal.
    Si tu veux accéder aux variables du workspace il va te falloir utiliser la fonction EVALIN (et ASSIGNIN si tu veux que les variables du workspace changent) mais ce n'est pas une façon propre de faire les choses.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 75
    Points
    75
    Par défaut
    Tout d'abord merci pour ta réponse immédiate

    Donc si je comprends bien quand j'appelle un script (qui n'est pas une fonction) dans une fonction sont espace de variable ne sera plus le workspace 'base' mais l'espace de variable de la fonction?

    Du coup est-ce qu'il y aurait un moyen d'appeler ce script via un pushbutton et qu'il reste dans le workspace 'base' ou faire que la fonction ne change pas de workspace?
    ou encore et je pense que c'est plus crédible, de passer à a fonction un ensemble de variables (sans avoir à les écrire une par une dans la définition de celle-ci )

    j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function test (objet, event,a, b)
    script_à_apeller
    mais j'obtiens :

    "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."

  4. #4
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Euh...Je ne suis pas sure de t'avoir suivi

    Le passage de variables est tout à fait possible de plusieurs façons.
    Effectivement l'une de ces façons est de passer les variables en arguments d'entrée de ta fonction.
    Pour ton message d'erreur, difficile à comprendre sans avoir plus d'infos.

    Une autre méthode serait d'enregistrer tes données dans un fichier MAT (avec la commande SAVE) et de les charger (avec la commande LOAD) dès que tu en as besoin.

    Après tu peux aussi demander à ce que le script soit effectué dans le workspace (avec la commande EVALIN).

    Mais cela dépend de ce que tu veux faire.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 75
    Points
    75
    Par défaut
    Merci pour la solution Load and save!
    c'est vraiment bien : d'un je ne disperse pas mes variables et de deux la sauvegarde de mes paramètres se fait automatiquement

    Donc encore une fois merci!!

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

Discussions similaires

  1. [XL-2003] Restreindre valeurs des paramètres appelés par une fonction
    Par azerty_2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/03/2011, 08h50
  2. Réponses: 6
    Dernier message: 07/06/2007, 14h27
  3. Réponses: 6
    Dernier message: 09/01/2007, 01h15
  4. Réponses: 2
    Dernier message: 03/04/2006, 18h38
  5. Appel d'une fonction en C par un noyau en asm (link)
    Par julson dans le forum Programmation d'OS
    Réponses: 7
    Dernier message: 22/03/2005, 15h14

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