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 :

passer les variables de Workspace dans les fonctions


Sujet :

MATLAB

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Points : 41
    Points
    41
    Par défaut passer les variables de Workspace dans les fonctions
    Bonjour,

    J'ai vu que dans Matlab les fonctions et scripts n'ont pas le même Workspace. J'aimerais pourtant utiliser directement les variables de mon Wkspace 'base' dans les fonctions, sans avoir à les mettre comme argument d'entrée. Est ce possible?
    S'il faut les déclarer comme variables globales, est ce qu'il faut faire cette déclaration dans toutes les fonctions ?

    Merci,

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

    Pour faire ce transfert, tu peux regarder la fonction doc evalin.
    Sinon une autre manière (plus élégante) de faire serait d'appeler ton script depuis ta fonction. Toutes tes variables déclarées dans le script seront alors contenues dans le workspace de ta fonction.

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bonjour,

    Pour faire ce transfert, tu peux regarder la fonction doc evalin.
    Sinon une autre manière (plus élégante) de faire serait d'appeler ton script depuis ta fonction. Toutes tes variables déclarées dans le script seront alors contenues dans le workspace de ta fonction.
    Merci de la réponse.
    ça marche avec evalin, mais devient fastidieux quand il y a trop de variables à charger.
    Sinon je n'ai pas très bien compris l'autre manière: faut il que je créer un script avec toutes les déclarations type et les charger dans chaque fonction?
    Est ce qu'il y a un moyen de ne pas avoir à appeler les variables dans chaque fonction? Je ne sais pas si les variables globales permettraient de le faire ou non

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par socrate88 Voir le message
    Sinon je n'ai pas très bien compris l'autre manière: faut il que je créer un script avec toutes les déclarations type et les charger dans chaque fonction?
    Que cherches-tu à faire exactement? Par ton premier post je pensais que tu avais créé un script et voulait passer les variables définies dedans dans le workspace de ta fonction, mais je n'en suis plus très sûr.
    Si tu ne les définis pas dans un script, alors comment le fais-tu? En ligne de commande? Des centaines de variables?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Que cherches-tu à faire exactement? Par ton premier post je pensais que tu avais créé un script et voulait passer les variables définies dedans dans le workspace de ta fonction, mais je n'en suis plus très sûr.
    Si tu ne les définis pas dans un script, alors comment le fais-tu? En ligne de commande? Des centaines de variables?
    En fait j'essaie d'avoir des variables globales, déclarées une seule fois et qui peuvent être utilisées par toutes les fonctions.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bien que je désaprouve l'utilisation des variables globales, la syntaxe à utiliser est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f1
    global var1 var2 ... varN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f2 
    global var1 var2 ... varN
    La ligne global var1 var2 ... varN sera à écrire dans chaque fonction où tu voudras les utiliser.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 84
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Bien que je désaprouve l'utilisation des variables globales, la syntaxe à utiliser est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f1
    global var1 var2 ... varN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function f2 
    global var1 var2 ... varN
    La ligne global var1 var2 ... varN sera à écrire dans chaque fonction où tu voudras les utiliser.
    Merci,
    donc il faudra bien déclarer les variables globales dans chaque fonction, c'est bien ce que j'essaie d'éviter, car j'ai justement une centaine de petites fonctions, et une centaine de ces variables...
    j'avais pensé à utiliser assingin, mais les variables ne sont créées que dans le workspace base...

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 233
    Points : 254
    Points
    254
    Par défaut
    Tu peux aussi faire une claasse (singleton) avec des propriétés 'Static' où tu mettras tout ce que tu veux. Cette information devrait être disponible partout dans programme. Je dis "devrait", puisqu'il y a des bugs dans l'implémentation des propriétés statique dans MatLab. A découvrir :-)

Discussions similaires

  1. text, ntext et image sont interdits dans les variables locales
    Par Sebounet19 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/07/2013, 15h44
  2. Les variables d'entrée dans une fonction
    Par wangying dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/02/2013, 16h53
  3. Réponses: 1
    Dernier message: 10/01/2012, 15h35
  4. Réponses: 6
    Dernier message: 18/04/2007, 11h47
  5. [.NET]Modifier les variables d'environnement dans...
    Par GusS dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/02/2005, 16h25

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