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 :

Lecture de fichier


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Points : 15
    Points
    15
    Par défaut Lecture de fichier
    Bonjour tout le monde,

    j'ai un fichier texte de genre :

    /*******************les_inputs_initial_measures************/
    #nb_veh_init
    0
    #soc_bat_init
    60
    /********************Predictions*************************/
    #prix
    10 15 7

    Mon but c'est d'avoir accès à chaque entier et au vecteur complet ( les strings c'est pas nécessaire)

    Pour cela j'ai fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fid = fopen('paramGlobal.txt','r');
    A=textscan(fid, '%*s %*s %d %*s %d %*s %*s %d','delimiter','\n','CollectOutput', true);
    fclose(fid);
    celldisp(A)
    remarque : %*s c'est pour dépasser la lecture des strings, le résultat que j'ai eu est de la forme :

    A{1} =
      
              0          60           10
    le vecteur "prix" n'était pas lu complètement...dans un second temps j'ai ajouté %d %d pour lire les 2 entiers qui reste du vecteur ( je me demande s'il y a pas une spécification particulière pour lire un vecteur entièrement)

    après le résultat devient :


    A{1} =
      
              0          60           10       15       7     
    Sauf que moi je veux un truc qui ressemble à ça :


    A{1} =
      
             0
             60
             10       15       7      
    Mais j'arrive pas à le faire si vous pouvez m'aider

    je vous remercie d'avance

    Redondo

  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 : 52 884
    Points
    52 884
    Par défaut
    Une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid = fopen('paramGlobal.txt','r');
    A = textscan(fid, '%s','Delimiter','\n', 'CommentStyle', '#');
    fclose(fid);
     
    idx = cellfun(@(x) ~strncmp(x, '/', 1), A{1});
     
    B = cellfun(@str2num, A{1}(idx),'UniformOutput',false);
    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 à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 10
    Points : 15
    Points
    15
    Par défaut
    Merci pour ton idée c'est bien ce que je veux
    j'ai réussi quand même à le faire autrement avec la fonction fgetl()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fid = fopen('paramGlobal.txt','r');
    mido = {} ;
    i=1 ;
    while ~feof(fid)
         line = fgetl(fid);
         mido{i} = str2num(line);
         i = i+1 ;
    end
         fclose(fid);

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

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/09/2003, 11h05
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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