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 :

écriture dans un fichier [Débutant]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut écriture dans un fichier
    Bonjour,
    Pour écrire mes résultats dans un fichier "resultat"; je procède comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    function EcrireResultat()
                %pour générer un nom de fichier test.txt:
                nomFichier = sprintf('test1%d.txt');
                %pour tester l'existence d'un fichier:
                if resultat == fopen(nomFichier,'w','n','UTF-8');%Ouverture du fichier en lecture txt:On ouvre notre fichier en lecture seule et on vérifie l'ouverture
                    disp('fichier ouvert');
                    %ecrire dans le fichier resultat tous les vehicules sorties
                    n = numel(ListeVehsortie);
                    fprintf(resultat,'%s\n','nbr_veh_sorties=');
                    fprintf(resultat,'%i\t %i\t %i\n',n);
                    fprintf(resultat,'%s\n','horizon_simul=');
                    fprintf(resultat,'%i\t %i\t %i\n',Horizon);
                    for i=1:n 
                        Veh = ListeVehsortie{i};
                        tt = numel(Veh.position); %obtenir le Nombre d'éléments
                        tt1= numel(Veh.vitesse);
                        tt2 = numel(Veh.acceleration);
                        fprintf(resultat,'%s\n','nbr_pas_temps=');
                        fprintf(resultat,'%i\t %i\t %i\n',tt);
                        Hentree = Veh.GetHeureEnt();
                        fprintf(resultat,'%s\n','heure_entree_veh=');
                        fprintf(resultat,'%i\t %i\t %i\n',Hentree);
                        if Hentree > 0
                            Hentree = Hentree - 1;
                            for t=Hentree:tt 
                                position = Veh.GetPosition();
                                x = position(t);
                                vitesse = Veh.GetVitesse();
                                v = vitesse(t);
                                acceleration = Veh.GetAcceleration();
                                acc = acceleration(t);
                                if (~Hentree)
                                    fprintf(resultat,'%i\t %i\t %i\n',x);
                                    fprintf(resultat,'%i\t %i\t %i\n',v);
                                    fprintf(resultat,'%i\t %i\t %i\n',acc);
                                    fprintf(resultat,'%i\t %i\t %i\n',Hentree);
                                else
                                    fprintf(resultat,'%i\t %i\t %i\n',x);
                                    fprintf(resultat,'%i\t %i\t %i\n',v);
                                    fprintf(resultat,'%i\t %i\t %i\n',acc);
                                    fprintf(resultat,'%i\t %i\t %i\n',Hentree + 1);
                                end %for(t)
                            end%for(i)
                        end
                    end
                    save(monfichier)% Sauvegarde toutes les variables du workspace courant
                    fclose(resultat)
                else
                    disp('impossible d''ouvrir le fichier');
                end
            end
    Mais j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ??? Undefined function or variable 'resultat'.
     
    Error in ==> main>LancerSimulation/EcrireResultat at 404
                if resultat == fopen(nomFichier,'w','n','UTF-8');%Ouverture du fichier
                en lecture txt:On ouvre notre fichier en lecture seule et on vérifie
                l'ouverture
     
    Error in ==> main>LancerSimulation at 53
            EcrireResultat();
     
    Error in ==> main at 41
    LancerSimulation(Horizon,decalage);
    Je ne comprends pas, quelqu'un peut m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Voici la syntaxe correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fid = fopen(nomFichier,'w','n','UTF-8');
     
    if fid>=3
     
        % ...
     
        fclose(fid);
     
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Et comment tester l'existence de mon fichier "nomFichier" ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Avec la fonction exist

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if exist(nomFichier, 'file')~=2
       error('Impossible de trouver le fichier');
    end
    Tout est dans la FAQ : Lecture/écriture de fichiers
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Au passage il y a une erreur dans le commentaire suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    %Ouverture du fichier en lecture txt:On ouvre notre fichier en lecture seule et on vérifie l'ouverture
    Et pourquoi souhaites-tu tester l'existence du fichier avant d'écrire dedans ?

    La documentation dit à propos du deuxième argument de fopen :

    • 'w' : Open or create new file for writing. Discard existing contents, if any.
    • 'a' : Open or create new file for writing. Append data to the end of the file.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Merci Beaucoup pour Tes réponses pertinentes

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  2. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  3. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  4. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25
  5. [JUnit] Junit écriture dans un fichier
    Par mikael35 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/08/2004, 13h11

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