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 :

traitement de plusieurs fichiers d'un repertoire


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut traitement de plusieurs fichiers d'un repertoire
    bonjour,

    J'ai commencé a faire un traitement sur un fichier .xls . Lors de ce traitement j'utilisai la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [num_meteo, txt_meteo, raw_meteo] = xlsread('data_compteur.xls')
    data_compteur étant le nom de mon fichier .


    Je cherche maintenant à le faire pour plusieurs fichiers. Je parviens à parcourir tous les fichiers du répertoire mais le problème est que je dois nommer le fichier à ouvrir donc c'est toujours le meme qui s'ouvre.
    Y a t il un moyen pour ne pas le nommer et passer au fichier suivant.
    voici mon bout de code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    rep = 'chemin;
    ext = '*.xls';
     
    chemin = fullfile(rep,ext);
     
    list = dir(chemin);
     
     
    for n = 1:numel(list)
     
    [num_meteo, txt_meteo, raw_meteo] = xlsread('data_compteur.xls')
     
    end
    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Physicien médical
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Physicien médical
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Salut^^

    Je pense que tu peux utiliser un truc de ce style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for n=1 : numel(list)
     
         nom_n = fullfile('dossier_où_sont_tes_fichiers',liste(n).name);
         lire(n) = xlsread(nom_n);
     
    end
    Je suis pas certain que xlsread se comporte comme importdata mais je pense que ca doit pouvoir se faire...

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    ce qui peut donner, en suivant jusqu'au bout l'exemple de la faq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    rep = 'chemin;
    ext = '*.xls';
     
    chemin = fullfile(rep,ext);
     
    list = dir(chemin);
     
     
    for n = 1:numel(list)
     
    [num_meteo, txt_meteo, raw_meteo] = xlsread(fullfile(rep,list(n).name),ext(3:end));
     
    end
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Effectivement cela fonctionne.

    Je voudrai maintenant ajouter une autre difficulté :

    lors de mon traitement je dois en fait ouvrir 2 fichiers un fichier meteo et un fichier compteur, placés dans des repertoires différents.

    les repertoires sont donc ainsi

    repertoire compteur
    fichier_compteur1
    fichier _compteur2
    .....
    repertoire meteo
    fichier meteo1
    fichier meteo2
    .....

    lors du premier traitement je dois ouvrir le fichier meteo1 et le fichier compteur 1, au 2ème le fichier meteo2 et le fichier compteur 2....

    simplement en imbriquant les 2 boucles ainsi


    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
    rep = '\compteur';
    ext = '*.xls';
    chemin = fullfile(rep,ext);
    list = dir(chemin);
     
    rep2 = '\meteo';
    ext2 = '*.xls';
    chemin2 = fullfile(rep,ext);
    list2 = dir(chemin2);
     
    for n = 1:numel(list)
        nom_n = fullfile(\compteur,list(n).name);
        lire(n) = xlsread(nom_n);
     
       for n = 1:numel(list2)
       nom_n2 = fullfile(\meteo',list2(n).name);
        lire(n) = xlsread(nom_n);
       end
     
    end
    je vais ouvrir le 1er fichier compteur puis ensuite le 1er fichier meteo, une fois le traitement fait je le ferai avec le 1er fichier compteur et le 2 eme météo ce que je ne veux pas. Je veux ouvrir le fichier compteur 2 directement.

    comment procéder pour faire cela?

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur opto-électronique
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur opto-électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Points : 157
    Points
    157
    Par défaut
    Pourquoi ne pas faire une seule boucle de 1 à n dans laquelle tu ouvres et lis tes deux fichiers ?

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je ne vois pas bien comment faire car j'ai deux repertoirs différents donc je dois bien nommer de facon différentes les chemins.

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi à résoudre le problème. maintenant je parcours bien tous les fichiers de mes deux répertoires et le traitement se fait entre chacun d'entre eux.

    voici maintenant une autre question :

    comment m'y prendre pour enregistrer les résultats du traitement dans des fichiers différents qui s'appelleront meteo_1, meteo_2,meteo_3.
    Est ce que si j'indique meteo_n = ..; cela fonctionnera?
    Je le fais pour un traitement mais je voudrais le faire pour l'ensemble en incrémentant le numéro du fichier

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    En lisant et en cherchant dans la
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    effectivement il y a des éléments à ce sujet dans la FAQ mais dans mon cas cela est un peu plus compliqué car au fur et à mesure du traitement j'enregistre dans chaque colonne du fichier les résultats de la facon suivante :

    par exemple.

    Donc au traitement suivant je voudrai meteo2(i,9) = 100

    en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       for n = 1:numel(list)
         nom_n = fullfile(chemin,list(n).name); 
        [num_meteo, txt_meteo, raw_meteo] = xlsread(nom_n);
        sprintf('meteo(:,8).xls',n) = num_meteo(1:end,1);
    ca ne fonctionne pas car le 8 indique la 8ème colonne du fichier

    Comment résoudre cela

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Je n'ai pas compris ce que tu cherches a faire... Tu parles de renommer des fichiers mais dans ton dernier message tu parles de manipulation de données...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. Traitement de plusieurs fichiers Word en simultané par une macro Excel
    Par Dryanide dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2019, 13h53
  2. [XSLT 2.0] Traitement de plusieurs fichiers en entrée
    Par VforVincent dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/05/2011, 14h34
  3. [XL-2003] Traitement de plusieurs fichiers
    Par korni184 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/08/2010, 12h57
  4. idee pour traitement sur plusieurs fichier excel
    Par jumpman dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/10/2009, 19h38
  5. Traitement de plusieurs fichiers XML
    Par Katachana dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2007, 16h54

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