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 :

Récuperer une même variable depuis plusieurs fonctions


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Par défaut Récuperer une même variable depuis plusieurs fonctions
    Bonjour à tous,

    J'ai deux fonctions distinctes faisant différents calculs en traitement du signal... Ce que je faisait est que j'enregistrais les résultats de chacun des blocs dans un fichier XML. Hors je ne dois en fait avoir qu'un seul fichier pour pouvoir le passer à ma GUI.

    Du coups j'ai fais un main.m appelant mes deux fonctions et je veux donc enregistrer toutes mes variables à la fin de ce script dans un seul fichier XML. hors lorsque je fais mon code j'obtiens l'erreur "metric undefined"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function main(wave,A,B,C)
     
    function1 (wave,A,B);
    function2(wave,C);
     
    xml_save('measures.xml', metric)
     
    end
    Car j'ai définit mes mesures comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    metric.result= lvl;
    metric.result.delta1 = deltaf1;
    metric.result.delta2 = deltaf2;
    metric.result.delta3 = deltaf3;
    metric.result.delta4 = deltaf4;
    metric.result.time = timing;
    Avec la première mesure dans la fonction 1 et les autres dans la fonction 2.

    Comment puis je faire pour qu'il aille directement chercher mes valeurs dans chaque fonctions depuis mon main ??

    Merci d'avance !

  2. #2
    Membre confirmé
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Par défaut
    Le problème viens du fais que lorsque j’exécute mes scripts dans mon main, il ne garde pas les variables en mémoire... Je ne peux donc pas récupérer les valeurs de mes variables pour les enregistrer dans le fichier XML car elle ne sont pas accessibles directement depuis mon main ! Any idea pour y accéder ?

  3. #3
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    salut

    pour y acceder tu peux :
    - utiliser des points d'arrêt dans ton main
    - transformer ton main (fonction) en script
    - sauvegarder le contexte dans un .mat avec la fonction save
    ...

    bien sur les outils de débogage (points d'arrêt) restent la meilleure solutions
    Fabien

  4. #4
    Membre confirmé
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Par défaut
    Pour moi les points d'arrets n'ont vocation qu'a être utilisés pour du débogage... Je me trompe ? Du coups je ne vois pas en quoi les utiliser réglerai mon problème ...

    L'utilisation d'un script marcherai mais je dois entrer des variables d'entrées dans mes fonctions du coups je suis obligé d'utilisé la commande "fuction()" .
    Ou est ce que j'ai loupé un truc ?

  5. #5
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 885
    Par défaut
    bon, bein je crois que je n'avais pas compris la question ...
    si je la comprend mieux maintenant, je te suggérerais de rajouter ta structure résultat en entrée/sortie de chaque fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function main(wave,A,B,C)
     
    metric = struct;
    metric = function1 (wave,A,B,metric);
    metric = function2(wave,C,metric);
     
    xml_save('measures.xml', metric)
     
    end

  6. #6
    Membre confirmé
    Homme Profil pro
    Ecole d'ingénieur
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ecole d'ingénieur

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Par défaut
    Par contre je me pose une question... Lorsque j'ajoute "metric" en input de ma fonction je suis donc obligé de la précisé non ? Car lorsque je run ma fonction main il me dit:
    error: value on right hand side of assignment is undefined
    Il me pointe ça sur la ligne ou j'appelle ma première fonction et ne prend donc pas en compte
    metric= struct;

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

Discussions similaires

  1. [DATA] Répéter une même opération sur plusieurs variables
    Par Elsa.b dans le forum SAS Base
    Réponses: 5
    Dernier message: 16/06/2015, 14h41
  2. Problème pour passer une variable sur plusieurs fonctions
    Par pierre3401 dans le forum Général Python
    Réponses: 3
    Dernier message: 13/11/2013, 11h14
  3. Plusieurs valeurs d'une même variable : colonnes
    Par derfer dans le forum Débutez
    Réponses: 4
    Dernier message: 02/12/2012, 18h24
  4. Utilisation d'une même variable dans différents fonctions de Callback
    Par houjuventini dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 16/11/2007, 08h58
  5. [Débutant - Avis] même variable dans plusieurs pages...
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/12/2004, 22h50

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