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 :

Suppression de données fichier .txt [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut Suppression de données fichier .txt
    Bonjour!
    Je suis ultra débutante en Matlab. En fait je recherche un équivalent de la commande 'awk' pour Matlab. Mes données se présentent sous forme de 14 colonnes, chaque colonne correspondant évidemment à une information tirée de mon expérience. Cependant, il y a un grand nombre de lignes où, ne se passant rien, les 14 colonnes ne sont pas remplies. Je veux donc récuperer les lignes ayant bien les 14 colonnes remplies.

    Le code via awk ressemblerait à ca:
    awk '{if(14 == NF) print($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)}' Sb3.TXT > Sb3B.txt #SI le nombre de colonne est 14 alors je print les 14.

    Je suppose qu'en Matlab ceci est rès facile à effectuer mais je ne trouve pas.

    Merci de votre aide!

  2. #2
    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
    Par défaut
    Bonjour,

    quel est le format de ton fichier texte? une suite de valeurs numériques séparées par des espaces?
    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.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Bonjour!!

    Mes fichiers txt sont tous comme ceci:

    ID DDD HH:MM:SS.mmmuuun  CH  RISE  COUN  ENER  DURATION AMP    RMS ASL PCNTS SIG STRNGTH  ABS-ENERGY
      1   0 00:00:00.9957053   2     6     1     0         1  45 0.0004  16     1   0.000E+00   0.000E+00
     ID DDD HH:MM:SS.mmmuuun  CH ASL  CH ASL
      2   0 00:00:00.9999943   1  16   2  16
    
    Je voulais utiliser le fait qu'il y ai une séparation entre "SIG" et "STRNGTH" (donc deux colonnes) qui représentent en fait une seule valeur.
    Et donc comme avec la commande awk supprimer toutes les lignes ayant un nombre de colonnes différent de 14. De cette manière je supprime à la fois les titres et les lignes qui ne contiennent pas suffisamment de données et également les saut de ligne (je suppose).

  4. #4
    Membre émérite
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Par défaut
    Bonjour,
    Je pense que ce petit code répond à votre question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    clear all
    clc
    fid = fopen('Nom_de_ton_fichier.txt');
    tline = fgets(fid);
    i=1;
    while ischar(tline)
        Line(i)=textscan(tline,'%s');
        tline = fgetl(fid);
        i=i+1;
    end
    [nrows, ncols] = cellfun(@size, Line);
    Line(nrows~=14)=[];
    avec nrows tu peux soit supprimer la ligne dont la taille est inférieur à 14 éléments.

    --------------------------------------
    Si cette réponse te plairas, n'oublies pas de voter pour ce me message

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Merci soft001!
    Je vais essayer ca!

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Mon fichier est plein de sauts à la ligne donc le programme s’arrêtait. Voila donc celui qui marche si ça peut aider quelqu'un d'autre. En tout cas merci beaucoup pour ce programme! J'ai plus qu'à trouver comment récupérer mes données à partir des cellules créées et ce sera bon. Je m'y mets demain!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    clear all
    clc
    fid = fopen('s9_raw_data.txt');
    tline = fgets(fid);
    i=1;
    while ischar(tline)
        if isempty(tline); tline = fgetl(fid); end;
        Line(i)=textscan(tline,'%s');
        tline = fgetl(fid);
        i=i+1;
    end
    [nrows, ncols] = cellfun(@size, Line);
    Line(nrows~=14)=[];

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

Discussions similaires

  1. [VBA Excel] Extraction de données fichier txt vers Excel et mise en forme
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 11h45
  2. Extraire données fichier txt
    Par thib1984 dans le forum MATLAB
    Réponses: 6
    Dernier message: 18/02/2008, 13h39
  3. extraire donné fichier txt afficher dans xml
    Par jasminrose dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 01/04/2007, 12h14
  4. Suppression d'un fichier .txt
    Par Duan dans le forum Delphi
    Réponses: 3
    Dernier message: 18/06/2006, 17h11
  5. Extraire données fichier txt
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2005, 17h12

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