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 :

[load] "File may be corrupt" à la lecture d'un fichier mat


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut [load] "File may be corrupt" à la lecture d'un fichier mat
    Bonjour,

    J'utilise la version R14 de Matlab
    Lorsque mon programme principal doit lire un fichier .m, j'ai l'erreur "file may be corrupt" qui apparaît.
    Que faire pour résoudre ce problème, sachant que le fichier n'est pas corrompue (vérification effectué sur un PC avec la version R12)

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Est-ce que tu arrives à l'ouvrir sur ta version R14 dans l'éditeur ?

    Quand tu dis "lire un fichier" quelle est la commande que tu utilises exactement ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Oui Oui, j'ai créer le fichier .mat moi même donc je peux l'ouvrir sans problème.
    J'utilise la commande load
    Voici l'erreur exacte:

    ??? Error using ==> load
    Unable to read MAT file C:\vibration\fichier.mat

    File may be corrupt
    Merci à ceux qui pourront m'aider

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Donc c'est un fichier .mat pas .m, c'est quand même différent.
    Regarde ici :
    Why do I receive "File may be corrupt" error when I attempt to load a MAT-file in MATLAB 7.0 (R14)? ...

    Cela semble parfaitement correspondre à ton souci.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Je vais essayer de bidouiller avec ça. Je ne connais pas trop les fonctions fseek, fwrite & cie mais on va voir ce qu'on peut faire.

    Merci

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    A mon avis il ne faut pas chercher à comprendre dans ce cas-là.
    C'est un bug, TMW te donne des solutions, tu les appliques et tu vois.
    Pense juste à faire une sauvegarde de ton fichier avant toute modification.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Je fais un programme qui utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fid=fopen('test.mat','r+');
    fseek(fid,132,'bof');
    fwrite(fid,filesize-136,'int32');
    fclose(fid);
    en remplacant filesize par la taille de mon fichier en bytes obtenue avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    D = dir('C:\MATLAB6p5p1\work\example.mat');
    sizeoffile=D.bytes
    Quand j'exécute ce programme, pas d'erreur donc ça a l'air de le "fixer". Mais quand j'exécute ensuite mon programme qui le load, à nouveau l'erreur...

  8. #8
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je vais peut-être te faire bondir mais tu as bien remplacer test.mat par le nom de ton fichier à toi ? (des fois l'erreur est tellement évidente qu'on ne la voit pas).

    Et sinon as-tu essayé l'autre solution proposée sur le lien que je t'ai donné ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Oui oui j'ai bien remplacé par les noms de mes fichiers.
    Mais je travaille sur un autre PC à côté donc je ne peux pas faire les vrais copié-collé de mon code.
    L'autre solution, c'est le MATZEROFIX ?

  10. #10
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par freres-fun Voir le message
    L'autre solution, c'est le MATZEROFIX ?
    Oui. Moi par défaut j'aurais commencé par la 1ère solution même si elle demande à télécharger des fichiers.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Oui oui mais ça n'a pas marché non plus...

    Quand on execute MatzeroFix, l'erreur est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2-byte endien indicator at zero-based offset 126 is neither 'MI' nor 'IM' (bad v5 MAT-File header)
    Et si on refait le load, l'erreur du début est là...

  12. #12
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Dis-moi, tu dis que tu as fait un test sur une R12 sur un PC.
    La R14 est installée sur quel OS ?
    Si par hasard ce n'était pas du Windows, comment transfères-tu ton fichier MAT entre les 2 OS ?
    Je me souviens avoir eu un problème "rigolo" une fois comme ça ou en changeant d'OS les marques de paragraphes étaient interprétées par l'OS d'arrivée dans le .mat (alors que c'est du code) et du coup ça plantait.

    Autre question : quelle est la taille de ton fichier MAT ? (apparemment il peut aussi y avoir des problèmes lorsque le fichier est "trop" gros)

    Enfin sinon il n'y a plus qu'à creuser : tu cherches "File may be corrupt" sur le site de TMW et tu regardes...

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Bon et bien on a résolu le problème en... installant une version plus ancienne!
    A partir de ce moment là, plus de problème, ça marche nickel avec les fichiers.
    Pour info, les 2 PC utilisait Windows XP ;-)

    Alex

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

Discussions similaires

  1. Loading Dump File Sybase Unix Into Windows
    Par coco_zouzou dans le forum Sybase
    Réponses: 3
    Dernier message: 30/05/2007, 13h30
  2. Problème d'index avec load data file
    Par bruno782 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2005, 12h11

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