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 :

Lecture de fichiers CSV mais aussi des entetes


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut Lecture de fichiers CSV mais aussi des entetes
    Bonjour,

    J'aimerais lire un fichier .csv qui contient le résultat de mes variables (qui sont des fonctions du temps).

    A l'aide de la fonction csvread, j'ai pu extraire une matrice qui contient pour chaque colonne mes variables. Pour celà, j'ai fait csvread('nomdufichier',1,0).

    Cà fonctionne mais je récupère uniquement les données. N'ayant pas la première l'entête avec le nom des variables, il est difficile de m'y retrouver.

    Est-ce que vous pourriez m'aider quelques lignes de codes pour me permettre de récupérer les infos des noms des variables ?

    L'idée est de faire les plots de mes variables dans un deuxième temps.

    Je n'arrive malheureusement pas à mettre le .csv car il a l'air de ne pas être accepté sur le forum.

    Nom : csv.gif
Affichages : 871
Taille : 53,2 Ko

    Merci pour votre aide

  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
    Une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid = fopen('test.csv', 'r');
     
    X = textscan(fid, '%s', N,'delimiter', ',');
     
    fclose(fid);
     
    X = strrep(X{1}, '"', '');
    La valeur de N est connue grâce au tableau lu avec csvread

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut
    Super. Merci pour ton aide. J'avance.
    Par contre, j'ai encore un petit soucis avec le vecteur X crée. Comme j'ai certains noms qui comportent des virgules comme par exemple "P_R_intA_R_Bati[1,3]", ces variables sont coupés logiquement au niveau de la virgule et je me retrouve avec une variable P_R_intA_R_Bati[1 et une 3].

    Voici un imprime écran du résultat pas encore tout à fait bon :



    1) Comment est-ce que je peux modifier mon programme pour pouvoir avoir le bon nom de mes variables dans mon vecteur X ?

    2) Ensuite, une fois ce pb corrigé, comment est ce que je peux relier ce vecteur contenant le nom de mes variables et mon tableau de données extrait du fichier ccsvread pour tirer une variable que je puisse tracer ?

    En fait, j'aimerais pouvoir me créer un vecteur pour time et un vecteur pour chacune de mes variables pour que je puisse faire un plot sur la variables souhaitée

    3) Est-ce que vous pourriez m'expliquer en 2 mots l’intérêt de cet identifiant qui est crée avec la fonction fopen ? J'ai regardé l'aide mais n'ai pas bien compris son interet.

    Merci pour votre aide.

  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
    Citation Envoyé par bendesarts Voir le message
    1) Comment est-ce que je peux modifier mon programme pour pouvoir avoir le bon nom de mes variables dans mon vecteur X ?
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = textscan(fid, '%q', N,'delimiter', ',');
    Je n'avais pas mis ce format dans mon précédent message car je ne le trouvais plus dans la documentation.
    Mais j'avais cherché au mauvais endroit (fprintf)

    Citation Envoyé par bendesarts Voir le message
    2) Ensuite, une fois ce pb corrigé, comment est ce que je peux relier ce vecteur contenant le nom de mes variables et mon tableau de données extrait du fichier ccsvread pour tirer une variable que je puisse tracer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    % Variable à tracer
    var = 'Pivot_2\MTF2';
    % Indice de la variable
    idx = strcmp(X{1}, var);
    % Colonne correspondante dans le tableau lu avec csvread
    M(:,idx)
    Citation Envoyé par bendesarts Voir le message
    3) Est-ce que vous pourriez m'expliquer en 2 mots l’intérêt de cet identifiant qui est crée avec la fonction fopen ? J'ai regardé l'aide mais n'ai pas bien compris son interet.
    C'est une structure opaque (langage C) qui permet simplement de gérer le fichier (ouverture, fermeture, droits, erreurs…)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 542
    Par défaut
    Super merci pour le code et tes explications très claires.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/05/2010, 22h53
  2. lecture de fichier CSV
    Par bakaratoun dans le forum MATLAB
    Réponses: 12
    Dernier message: 07/12/2009, 17h00
  3. importer un fichier CSV mais en précisant les colonnes
    Par jejeman dans le forum Débuter
    Réponses: 2
    Dernier message: 27/07/2009, 10h52
  4. VB.Net - Lecture de fichiers csv
    Par House MD dans le forum VB.NET
    Réponses: 16
    Dernier message: 19/10/2008, 16h56
  5. [CSV] Lecture de fichier CSV
    Par fthem dans le forum Langage
    Réponses: 18
    Dernier message: 23/09/2008, 08h17

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