Matlab : Problème de lecture de données
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Matlab : Problème de lecture de données



  1. #1
    inviteb7f520a5

    Matlab : Problème de lecture de données


    ------

    Bonjour à toutes et à tous.

    Le contexte :
    On m'a confier la tâche de créer une série de diagnostiques pour un programme avec matlab. Les diagnostiques existent déjà, mais en fortran 77, et ne sont absolument pas efficace. D'où ma tâche...

    L'écriture des fichiers est spécialement conçu pour les diagnostiques fortran, et pas du tout pour matlab. Comme il faut que les deux types de diagnostiques puissent être utilisé, je ne peux pas modifier dans le programme initial les écritures des données.

    Le problème :
    Les fichiers ont une ou deux lignes de type :
    t,EPRE,EDPHI,EDPSI,EVPL,ECUR
    ou bien
    t= 100.
    mode,m,n,edphi

    puis viennent les données.

    en utilisant fopen, je peux lire la (les ) première(s) ligne(s), mais pas moyen de lire la matrice de données ensuite :
    - fread me sort des valeurs qui n'ont rien a voir avec le fichier initial (j'ai tester tous les types de precision, rien à faire).
    - fscanf ne fonctionne pas non plus.
    Je suppose que c'est parce qu'il y a des virgules et des espaces partout dans les fichiers de données... (oui, c'est très mal fichu...)

    Par contre, si je commente à la main les premières lignes et qu'ensuite, j'utilise un simple load, alors ça marche super !

    Bref, je voulais savoir s'il est possible de
    1) ouvrir un fichier, récupérer les données d'en-têtes, commenter les en-têtes, et de faire un "load" sur les données qui restent...

    2) Ouvrir un fichier, lire les en-têtes, fermer le fichier. Lancer un shell script depuis matlab pour réarranger les données proprement, simplement, et méthodiquement dans un fichier temporaire, faire un "load" avec mon fichier temporaire, et supprimer le fichier temporaire par un autre shell script simple.

    3) une autre solution à laquelle je n'ai pas pensé !

    Quelque soit le cas, comment écrire celà dans un .m
    Je ne sais pas si je suis bien clair... Mais si quelqu'un à une idée de comment me sortir de là, ce serait super !

    Merci d'avance.

    -----

  2. #2
    inviteb9f49292

    Re : Matlab : Problème de lecture de données

    "fread" permet de faire une lecture binaire, donc pour des fichiers lisible par un humain c'est rarement adapté...
    Le "fscanf" de matlab est un peu bizarre à prendre en main lorsque tu connais celui de la bibliothèque C standard. Mais alors pour peu que ton fichier est formaté de manière identique il est très puissant.
    Il y a également la fonction "dlmread" pour les fichiers dont les données sont séparées par le même séparateur.

    1) ouvrir un fichier, récupérer les données d'en-têtes, commenter les en-têtes, et de faire un "load" sur les données qui restent...
    la fonction "fseek" existe sous MATLAB, elle permet de déplacer ton pointeur de lecture / ecriture à l'intérieure de ton fichier.

    2) Ouvrir un fichier, lire les en-têtes, fermer le fichier. Lancer un shell script depuis matlab pour réarranger les données proprement, simplement, et méthodiquement dans un fichier temporaire, faire un "load" avec mon fichier temporaire, et supprimer le fichier temporaire par un autre shell script simple.
    Tu peux faire des appels au shell depuis matlab grâce à la fonction "system".

    3) une autre solution à laquelle je n'ai pas pensé !
    Peut-être séparer ta lecture en 2 "fscanf": un pour l'entête et l'autre pour les données, poste un fichier en exemple pour que l'on puisse t'en dire plus.

  3. #3
    inviteb7f520a5

    Re : Matlab : Problème de lecture de données

    Merci beaucoup, je vais regarder tout ça !

Discussions similaires

  1. [Matlab] Chargement de données
    Par invite44fc6d5e dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 22/06/2009, 12h27
  2. Lecture de données temps réel
    Par invite66a1167f dans le forum Matériel - Hardware
    Réponses: 0
    Dernier message: 22/03/2009, 14h08
  3. Lecture d'une base de données xml en c ?
    Par invite36d52cc8 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 12/10/2008, 00h46
  4. lecture de fichier via matlab
    Par invitecbfb5046 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 20/03/2008, 19h20
  5. Importation données Matlab
    Par invitee4b17465 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/06/2007, 14h38
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...