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 :

erreur fichier txt


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Par défaut erreur fichier txt
    je débute en matlab, j'ai écris un code pour créer un fichier.txt sous MATLAB.
    et voilà le code que j'utilise:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    fid = fopen('Base.txt','w');
    compte=0;
    peau=0;
    nonpeau=0;
     
    fprintf(fid,'%s \t %s \t %s \t %s \n','H','S','V','classe');
     
     
    for f=1:10
     
        ImageReel  = imread(['BaseAppSelectionNum/',int2str(f),'.jpg'],'jpg');
     
        Masque = imread(['MasqueBaseAppSelectionNum/',int2str(f),'.jpg'],'jpg');
     
        s=size(ImageReel);
        m1=s(2)/2;
        ImageReel_hsv=rgb2hsv(ImageReel);
     
     
        for i=1:10
            for j=m1:520
                Masque(i,j);
                if Masque(i,j)==1
                    nonpeau=nonpeau+1;
                    classe='A';
                else
                    peau=peau+1;
                    classe='B';
                end
     
                ImageReel_h = double(ImageReel_hsv(i,j,1));
                ImageReel_s = double(ImageReel_hsv(i,j,2));
                ImageReel_v = double(ImageReel_hsv(i,j,3));
     
                fprintf(fid,'%f \t %f \t %f \t %s \n',ImageReel_h,ImageReel_s,ImageReel_v,classe);
     
                compte=compte+1;
            end;
        end;
     
    end
    fclose(fid);
     
     
    fclose(fid);
    Mais lors d'ouvrir ce fichier sur le logiciel Orange Canvas de datamining, il me donne cette erreur que j'ai pas comprise:
    Unhandled exception of type UnicodeEncodeError occured at 18:38:00:
    Traceback:
      File: orngSignalManager.py, line 61 in __call__
      Code: self.method(*k)
        File: OWFile.py, line 179 in browseFile
        Code: filename = str(QFileDialog.getOpenFileName(startfile, 
    self.dlgFormats, None, 'Open Orange Data File'))
          UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in 
    position 57: ordinal not in range(128) 
    y-a-t'il quelqu'un qui peut m'aider à corriger cette erreur??

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    C'est un problème d'encodage de caractères...

    Dans un premier temps, essaie simplement en ajoutant le paramètre t en entrée de FOPEN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fid = fopen('Base.txt','wt');
    Si le problème persiste, renseigne l'argument encoding de FOPEN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fid = fopen('Base.txt','wt','n',encoding);
    encoding est une des valeurs données dans la documentation de FOPEN

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Par défaut
    Pour le premier essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dans un premier temps, essaie simplement en ajoutant le paramètre t en entrée de FOPEN
    j'ai ajouté le t mais le problème persiste,
    donc j'ai essayé avec le 2ieme essaye et il me donne cet erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ?? Error using ==> fopen
    Too many input arguments.
     
    Error in ==> Base
    fid = fopen('Base.txt','wt','n','US-ASCII');
    ce que j'ai compris que ma version Matlab ne contient que 3 paramètres voici ce que me renvois le help de mon matlab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [fid,message] = fopen(filename, mode, machineformat)

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Quelle est ta version de MATLAB et sous quel système d'exploitation travailles-tu ?

    Sinon, essaie de modifier le fichier txt crée par MATLAB à l'aide d'un éditeur de texte (par exemple, sous Notepad++ : menu Encodage > Convertir en...)

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Par défaut
    ma version de matlab c'est :Matlab 7.0.0.19920 (R14) et mon système d'exploitation c'est windows XP Professionel service Pack 3.

    J'ai pas trouvé de Notepad++ (ou bien indiquez moi ou je peux le trouver pour faire la conversion).

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Par défaut
    J'ai téléchargé le Notepad++, mais comment je peux savoir le codec correcte pour faire la conversion?

  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 317
    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 317
    Par défaut
    Soit tu trouves l'information dans la documentation du logiciel Orange Canvas, soit tu testes les conversions les unes après les autres.

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Je viens aussi de voir qu'a priori ce logiciel accepte des lignes de code Python...

    Fais une recherche sur internet avec le message d’erreur "UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9'", tu trouveras peut être une commande Python pour résoudre ce problème.

    Tu peux aussi éventuellement poster une question dans le forum Python en mettant un lien vers cette discussion.

  10. #10
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Par défaut
    Pouvez-vous m'aidez avec quelle commande que je dois ajouter à mon code matlab pour résoudre mon problème?

Discussions similaires

  1. Réponses: 23
    Dernier message: 14/03/2009, 15h57
  2. une erreur d'impression d'un fichier txt avec java :(
    Par lolo_momo dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 14/05/2008, 21h06
  3. Réponses: 1
    Dernier message: 27/02/2008, 16h49
  4. Erreur d'ouverture de fichier txt : sylk
    Par solorac dans le forum Excel
    Réponses: 2
    Dernier message: 13/02/2008, 21h51
  5. Réponses: 2
    Dernier message: 07/12/2005, 18h32

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