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 :

Mise à jour d'une valeur dans une boucle


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 5
    Points
    5
    Par défaut Mise à jour d'une valeur dans une boucle
    Bonjour,
    j'ai créé une boucle dans matlab qui lance des calculs avec un logiciel (logiciel.exe) et qui sauvegarde pour chaque itération les valeurs dans le même fichier "output.m".
    Dans la même boucle, je lis ces valeurs et je les affiche.
    Ce qui n'est pas normal est que les valeurs ne changent pas après.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    %%%%%
    for it=1:10
     
    logiciel.exe
    export des valeurs dans un fichier output.m
    run(output.m)
    fprintf('valeur de A %d', A)
     
    end
    %%%%%
    j'ai bien vérifié que output.m et A change de contenu à chaque itération (logiciel.exe le met à jour) mais par contre A garde la même valeur dans l'afichage.

    PS. je ne peux pas utiliser un fichier "output.mat" au lieu de "output.m" parce qu'il y a du texte dedans, etc. et d'autre part j'ignore le contenu en avance. le but reste seulement d'avoir la valeur de A dans le Workspace.

    Merci.

  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
    Pourrais-tu nous montrer 2 fichiers output.m à des itérations différentes ? (juste la partie où A est défini)

    Le problème là c'est qu'il est impossible pour nous de tester ton programme.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    output.m pour it=1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A(1, :, :)=[-1.422121E-001 +     3.7100038E-001i];
    output.m pour it=2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A(1, :, :)=[2.121936E-001 +     3.501761E-001i];
    malgré que la valeur affichée de A dans matlab reste pour les différentes itérations: -0.1422+0.3710i

  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
    Je reproduis effectivement le problème avec ce petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for it=1:4
        fid=fopen('output.m','w');
        fprintf(fid,'A(1,:,:) = %d+%di;\n',it,it*2);
        fclose(fid);
        output;
        disp(it)
        disp(A)
    end
    Je pense que cela vient du fait que MATLAB garde en mémoire la 1ère version de output.m qu'il a lancée.
    C'est très énervant...

    J'ai essayé 2/3 trucs (REHASH, PATH(PATH), supprimer le fichier avec DELETE avant de l'écrire), pour l'instant rien ne fonctionne...

    Tu n'as vraiment pas moyen de faire autrement ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Moi aussi j'ai essayé d'utiliser delete et clear pour avoir la valeur actuelle mais ça ne marchait pas.

    J'essayerai de créer un fichier output pour chaque itération et les lire un par un.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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