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 données texte


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 48
    Points : 34
    Points
    34
    Par défaut Traitement de données texte
    Bonjour,

    Suite à une mesure experimentale j'ai un fichier texte à traiter (data.txt).
    Il est constituer de chiffres séparé par tab. Le probleme viens du fait que certain points manque et sont remplacés par ***. Donc ce fichier contient des float et des caracteres.
    Ce que je voudrais c'est remplacé tout les éléments *** du fichier par 0.
    Ca ne semble pas bien difficile,mais étant totalement debutant j'ai pas reussi...
    Je vous remercie d'avance pour vos conseils!
    Pierre

  2. #2
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,

    Je vous donne un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    f=fopen('data.txt','r+');  % ouvrir le fichier en mode read+write
    x=fread(f);                  % lire les données
    k=find(x=='*');             % chercher les position de '*'
    x(k)='0';                      % remplacer '*' par '0'
    fseek(f,0,'bof');            % placer le pointeur au debut de fichier
    fwrite(f,x);                  % ecrir les données dans le fichier 
    fclose(f);                    % fermer le fichier
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  3. #3
    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 880
    Points
    52 880
    Par défaut
    Citation Envoyé par rostomus
    k=find(x=='*');
    x(k)='0';
    Ou simplement :

    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)

  4. #4
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Bonjour,

    merci pour la remarque, Dutmatlab, x(x=='*')='0' je ne la connaissais pas avant
    on apprend toujour
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 48
    Points : 34
    Points
    34
    Par défaut merci
    Merci beaucoup!
    Lundi au boulot, je regarde comment implementer vos codes, et j'essaierais de les comprendre.
    a bientot
    Pierre

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    tu peux aussi le faire "à la main". enfin en utilisant la fonction
    "find and replace" de l'éditeur matlab ou bien du notepad !

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

    en supposant que le fichier text contient les données suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    0.9501    0.7621    0.6154
    0.2311    ***    ***
    0.6068    ***    0.9218
    ***    0.8214    0.7382
    0.8913    0.4447    0.1763
    le code suivant fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M=textread('data.txt','%s');
    M=strrep(M,'***','0');
    M=str2num(char(M));
    M=reshape(M,3,[])';
    dlmwrite('data2.txt',M,'\t')
    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)

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

Discussions similaires

  1. Modifier position graphique d'une zone de texte et traitement des données
    Par Globolite dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/06/2014, 17h59
  2. [Débutant] IHM pour traitement de donné text/wav
    Par Robin-a dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 07/11/2009, 23h14
  3. Réponses: 6
    Dernier message: 07/06/2007, 09h31
  4. Chargement de données texte.
    Par Guiadeur dans le forum Oracle
    Réponses: 1
    Dernier message: 19/10/2005, 11h42
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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