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 :

dlmread en boucle


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut dlmread en boucle
    bonjour à tous,

    je n'arrive pas à traiter des données de fichiers car je n'arrive pas à les ouvrir en boucle ..
    je dispose d'une centaine de fichiers tel que :
    DataLEE03800.mat
    DataLEE03801.mat
    etc etc ..

    bien sur j'arrive à en ouvrir un et le traiter mais je ne veux pas faire la méthode barbare, à répéter 100 fois fopen..

    j'ai essayé plusieurs choses, notamment dlmread mais je n'arrive pas à le faire fonctionner en boucle ..

    Puis ceci :

    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
     nbdeb=1;
     nbfin=9;
     nom='DataLEE038';
     
    for i=nbdeb:nbfin
     
        if i<10 
               nom1=sprintf('%s0%d.mat',nom,i);
        end
     
        pf1=fopen(nom1,'r');
        m=fprintf('%s    ',nom1);
     
        matrix= fscanf(pf1,'%i %g',1);
        fclose(pf1);
     
     
        U=matrix;
     
    end
    bref ça ne marche pas et je ne sais pas comment faire , donc si vous auriez une idée je vous en serais très reconnaissant ..

    merci

  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 160
    Points
    53 160
    Par défaut
    Essaie simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    nbdeb = 1;
    nbfin = 9;
     
    for i = nbdeb:nbfin
     
        nom = sprintf('DataLEE038%02d.mat', i)
     
    end
    Ensuite, si ce sont des fichiers .mat générés avec la fonction save, il faut utiliser la fonction load pour les lire
    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
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    ok c'est super ça marche

    merci beaucoup !!

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    une autre petite question ...

    le programme marche très bien pour des fichiers de DataLEE03801.mat à DataLEE03899.mat en revanche, j'aurais aimé savoir comment procéder si je veux lire à partir du fichier DataLEE00001.mat jusqu’au DataLEE03899.mat ..

    je ne me vois pas faire plein plein de boucle ...

    si ca peux aider voici mon programme :

    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
    nbdeb1 = 1;
    nbfin1 = 99;
     
     
    for i = nbdeb1:nbfin1
     
        nom = sprintf('DataLEE036%02d.mat', i);
     
        matrix = load(nom);
        temps(i,1)=matrix.t;
     
        P=matrix.u(1:481,1444:1924);
     
        PP(i,1)=P(241,241);
     
     
    end
    j'aimerais pouvoir aller de 1 à 3899 .. cependant je n'ai pas très bien compris comment marchait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom = sprintf('DataLEE036%02d.mat', i);
    merci beaucoup

  5. #5
    Invité
    Invité(e)
    Par défaut
    Le tout est de former les parties en rouge : DataLEE00001.mat ... DataLEE03899.mat, parties qui ont une longueur fixe de 5 chiffres, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom = sprintf('DataLEE%05d.mat', i);

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    c'est parfait !!

    merci

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 13h45
  2. [langage] if et boucle { ..}
    Par kacedda dans le forum Langage
    Réponses: 15
    Dernier message: 28/04/2003, 18h25
  3. [directsound] boucle de traitement de son
    Par gargle dans le forum DirectX
    Réponses: 5
    Dernier message: 24/03/2003, 11h47
  4. Sortir d'un progamme qui boucle ou qui refresh
    Par mikevador02 dans le forum C
    Réponses: 12
    Dernier message: 14/12/2002, 10h38
  5. Réponses: 2
    Dernier message: 29/05/2002, 21h43

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