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 :

Concaténer plusieurs fichier


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Points : 57
    Points
    57
    Par défaut Concaténer plusieurs fichier
    Bonjour,
    J'ai par exemple 3 fichiers .txt
    Je souhaite les ouvrir (jusque la ok j'utilise for i=1:3) puis mettre les données à la suite verticalement pour en faire qu'un.

    Exemple:
    Fichier 1
    1 1 1
    2 3 1

    Fichier 2
    2 5 8
    5 9 6
    0 0 1

    Fichier 3
    2 8 9


    J'ai toujours 3 colonnes par fichier mais le nombre de lignes change je voudrai obtenir
    1 1 1
    2 3 1
    2 5 8
    5 9 6
    0 0 1
    2 8 9


    Mon problème c'est que je n'arrive pas à garder en "mémoire" les données du fichier 1 lorsque je demande de concaténer avec le fichier 2. Et ainsi de suite garder en mémoire la concaténation du fichier 1 et 2 pour y ajouter le fichier 3 .....

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour ju_cayenne

    Peux-tu nous montrer le code utilisé ?

  3. #3
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Points : 57
    Points
    57
    Par défaut
    Ca donne quelque chose du genre, mais c'est incomplet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    file=dir('chemin des fichier\*.txt');
    STA_ii=[];
     
    for i=1:length(file)  %je parcours mes fichiers
     
        STA=importdata(file(i).name, ' ', 3);  %j'importe mes données dans le fichier i en supprimant donc les 3 première lignes 
     
    STA_i=(STA.data);  %Je renomme la partie qui correspond que aux données 
     
    end
    Puis après je sais pas ... Je devrait mettre un fid, fprintf et fclose mais je sais pas si c'est dans le boucle ou en sortie, et qui varie avec i.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Je n'ai pas bien compris pourquoi tu souhaites supprimer les 3 premières lignes. Quoi qu'il en soit tu peux faire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    file=dir('chemin des fichier\*.txt');
    STA_total=zeros(;
     
    for i=3:length(file)  % file(1) et file(2) ne sont pas des noms de fichiers, tu peux vérifier par toi même
        STA_temp = importdata(file(i).name); % cette ligne ou celle du dessous
        STA{i,1} = importdata(file(i).name);  % (utile si tu veux stocker les fichiers importés dans un tableau de cellule, mais pas nécessaire)
     
        STA_total=cat(1,STA_total,STA_temp);  %Je concatène mon STA_temp que je viens de charger avec les STA déjà chargés précédemment
     
    end
    % Ou bien si je les ai stocké dans un tableau de cellules:
    STA_total = cell2mat(STA);

  5. #5
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Points : 57
    Points
    57
    Par défaut
    La suppression des 3 lignes c'est parce qu'il s'agit de texte.
    Dans la ligne ci dessous j'ai rajouter STA_temp.data pour accéder au données stocké dans la cellule .data

    lorsque j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    STA_total=cat(1,STA_total,STA_temp.data)
    J'ai l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Error using cat
    CAT arguments dimensions are not consistent.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Effectivement, mea culpa pour le .data !

    J'ai également ajouté un STA_total = zeros(; qui est non seulement une faute mais qui n'a pas lieu d'être. Et comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    file=dir('chemin des fichier\*.txt');
    STA_total=[];
     
    for i=3:length(file)  % file(1) et file(2) ne sont pas des noms de fichiers, tu peux vérifier par toi même
        STA_temp = importdata(file(i).name); % cette ligne ou celle du dessous
        STA_total=cat(1,STA_total,STA_temp.data);  %Je concatène mon STA_temp que je viens de charger avec les STA déjà chargés précédemment 
    end

  7. #7
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Points : 57
    Points
    57
    Par défaut
    C'est impeccable !!!!!!

    Merci beaucoup

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    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 318
    Points : 52 958
    Points
    52 958
    Par défaut
    Tu peux également faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dos('copy /b *.txt all.txt');

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

Discussions similaires

  1. [PDF] Concaténer plusieurs fichiers
    Par Wookai dans le forum C#
    Réponses: 7
    Dernier message: 16/06/2023, 16h06
  2. [WD14] Concaténer plusieurs fichiers texte
    Par mail.spam dans le forum WinDev
    Réponses: 3
    Dernier message: 30/03/2011, 15h08
  3. concaténer plusieurs fichiers xml avec awk
    Par flora806 dans le forum Linux
    Réponses: 0
    Dernier message: 19/06/2009, 18h18
  4. Comment concaténer plusieurs fichiers en un ?
    Par souch dans le forum Langage
    Réponses: 16
    Dernier message: 14/12/2004, 19h58

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