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 :

Compression texte codage RLE


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Compression texte codage RLE
    Bonjour, je suis en premier année d'école d'ingénieur et j'ai un programme à réaliser pour compresser un fichier texte de mon choix.
    Comme le montre l'exemple qui mets donne en énoncé:
    AAAAAAAAAZZEEEEEER donne 8A2Z6E1R

    Je pense qu'il faut que le programme parcours la chaine de caractère, avec une boucle for additionner 1 (noté alpha) à chaque fois que le programme rencontre le meme caractère et à la fin en output sortir alpha*le caractère

    Pour cela je dois utiliser la méthode RLE mais je ne vois pas du tout comment faire pour travailler avec des chaines de caractères dans MATLAB.

    Merci d'avance pour votre aide

    Rémi

  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
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    la manipulation des chaînes de caractères n'est pas beaucoup plus compliquée que la manipulation de valeurs numériques :
    Characters and Strings
    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
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ok merci bien je regarde ça ;-)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé de faire mon programme, j'arrive à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    s=input('Entrez le texte:','s');
    Taille=length(s);
    i=0
    if Taille==0
        error('chaine vide')
    elseif 's'==Lettre
        i=i+1
    end
    disp(['Avec la compression RLE, on obtient:' i lettre])
    Mais je ne vois pas comment faire pour que MATLAB reconnaisse la lettre a ou z comme dans mon exemple, sans devoir toutes les rentrer

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Qu'est-ce que la variable Lettre ? Attention à la case : Lettre différent de lettre.
    elseif 's'==Lettre veux-tu ici utiliser la variable s rentrée avec la fonction input ? Si c'est le cas, enlève les guillemets, sinon c'est simplement le caractère.

    Attention à la ligne disp(['Avec la compression RLE, on obtient:' i lettre]) : on ne peut pas mélanger des chaînes de caractères et des valeurs numériques. Tu peux regarder les fonctions num2str et sprintf

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    j'ai modifié tout ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    s=input('Entrez le texte:','s');
    Taille=length(s);
    nb=0;
    nl=1;
    l=s(nl);
    nl=nl+1;
    while s(nl)==l;
        nb=nb+1;
        nl=nl+1;
    end
    nl
    Mais MATLAB me marque comme erreur ça:
    ??? Attempted to access s(3); index out of bounds because
    numel(s)=2.
    
    Error in ==> RLE at 7
    while s(nl)==l;
    et je ne trouve pas d’où cela provient

  7. #7
    Invité
    Invité(e)

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

Discussions similaires

  1. Amélioration de la compression par codage de Golomb
    Par yannoo95170 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 17/08/2012, 14h47
  2. Réponses: 3
    Dernier message: 05/02/2009, 10h13
  3. Fichier texte : codage d'un saut de ligne
    Par zafo dans le forum Pascal
    Réponses: 4
    Dernier message: 17/03/2007, 18h33
  4. Réponses: 2
    Dernier message: 13/01/2006, 10h11
  5. Fichier texte avec codage non standard
    Par giloutho dans le forum Langage
    Réponses: 4
    Dernier message: 15/07/2005, 19h31

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