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 :

Tester variable dans une fonction


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Tester variable dans une fonction
    Bonjour,

    Je teste dans une fonction si la variable 'a' existe deja dans mon workspace ou pas.... Le truc c'est que meme si je retourne la variable a, il ne la voit pas au deuxième appel de la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function a = read
    disp(' ')
    if (exist('a','var')==0)
    temp = input('Veuillez brancher les 2 câbles ensemble puis cliquer enter', 's');
    end 
    a=1;
    temp = input('Veuillez raccorder les câbles sur les éléments à tester puis cliquer enter', 's');
     
    % Ici d'autres fonctions sont appelé
     
    end
    ensuite j'appele la fonction sur la command window:

    La variable 'a' est alors retourné et enregistré dans mon workspace mais si j'appelle une deuxième fois la fonction read il m'affiche a nouveau le texte... Ce qui n'est pas désiré!

    Un petit coup de pouce??

    Merci de votre aide

    Florian

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    lorsque tu rentres dans une fonction, matlab créé un nouvel espace de travail, et l'espace de travail de base n'est plus visible directement, c'est pourquoi exist ne "voit" pas la variable a.

    Pour exécuter une commande dans autre espace de travail :
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Ok mais si la variable 'a' n'existe pas encore dans le workspace est que je exécute un

    il me fait une erreur alors que j'aimerais qu'il me sorte un 0 ou n'importe quel autre chiffre différent de 1.

    Une petite idée?

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Là tu essaies de récupérer la variable a, d'ou l'erreur lorsque a n'existe pas. Mon idée était de tester l'existence de la variable a dans 'base' à l'aide d'evalin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (evalin('base','exist(''a'',''var'')'))==0
    qui s'écrit aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ~evalin('base','exist(''a'',''var'')')
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Génial merci beaucoup!

    Je ne connaissais pas la technique des doubles tirets ''a''...

    Bonne journée

    Florian

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

Discussions similaires

  1. Passage de variables dans une fonction
    Par renaud26 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/07/2006, 17h49
  2. [Excel]Mettre une variable dans une fonction
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/04/2006, 12h00
  3. [Tableaux] Récuperer variable dans une fonction
    Par amarcil dans le forum Langage
    Réponses: 12
    Dernier message: 12/02/2006, 10h56
  4. Pb de variable dans une fonction :
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2005, 13h54
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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