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 :

format données de matlab vers excel


Sujet :

MATLAB

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut format données de matlab vers excel
    bonjour j'ai par exemple une matrice crée dans matlab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    d1=729300:10:729400;
    d2=729400:10:729500;
    matdate=[d1',d2'];
    je veux sortir un fichier excel avec un format date pour la matrice de départ matdate je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    test = fopen('testdata.xls', 'wt');
    fprintf(test,'%s\t %s\n','Date1','date2');
    for d=1:11
        fprintf(test,'%s\t %s\n',[datestr(matd(d,1),'dd/mm/yyyy HH:MM')],[datestr(matd(d,2),'dd/mm/yyyy HH:MM')]);
    end
    fclose(test);
    le fichier est créé mais je remarque que la première colonne un fichier excel créé est sous format date, par contre la seconde colonne est un texte (chaine de charactère)

    le problème c'est que je peux faire des opérations sur la première colonne du fichier excel mais pas sur la seconde
    est-ce -que quelqu'un sait pourquoi? et peut-on arranger ça?

  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
    Et si tu nous expliquais clairement ce que tu cherches à faire ?

    Je ne vois pas l'intérêt de considérer le format xls comme un simple format texte ?

    Pourquoi ne pas utiliser XLSWRITE ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    j'utilise pas xlswrite parce que les matrices Matlab ne peuvent pas concatener des datestr et des valeurs numériques

  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
    xlswrite prend en argument un tableau de cellules (cell array) donc tu peux mettre ce que tu veux dedans, c'est donc de loin la méthode la plus souple.
    Montre-nous comment tu as essayé de l'utiliser, on pourra peut-être t'aider à mieux formaté le tableau.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    je veux avoir un fichier de sortie en excel sur lequel j'ai pas besoin de convertir des datenum de Matlab, que j'aurai à importer, en date excel.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    j'ai créer une matrice (n*4) dans matlab faites entièrement de valeurs numériques,
    les deux premières colonnes sont des dates en valeurs numériques
    et les autres colonnes sont des valeurs de paramètres.
    ce fais simplement xlswrite, et sur le fichier excel je converties les deux premières colonnes en dates excel.

    mais avec le programme mis plus haut, j'ai le fichier excel créé mais il voit la première colonne en date et la seconde en chaine de charactère, je comprends pas pourquoi.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    je fais ça comme programme pour exporter les fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    d1=729300:10:729400;
    d2=729400:10:729500;
    v1=10:1:20;
    v2=20:1:30;
    matfinal=[d1',d2',v1',v2']
    matfinal(:,1)=matfinal(:,1)- datenum('30-Dec-1899');
    matfinal(:,2)=matfinal(:,2)- datenum('30-Dec-1899');
    xlswrite('matfinal.xls',matfinal);
    sauf que dans excel après je dois intervenir pour convertir les deux premières colonnes en date

  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
    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    %transfo en cellule
    res=num2cell(matfinal);
    %traitement des colonnes 1 & 2
    res(:,1:2) = cellfun(@(x) datestr(x,'dd/mm/yyyy HH:MM'),res(:,1:2),'UniformOutput',false);
    %ecriture dans le fichier Excel
    xlswrite('matfinal.xls',res);

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    j'ai un message d'erreur avec cellfun

  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
    Tu as quelle version de MATLAB ?

    Si ta version n'est pas assez récente CELLFUN a un comportement limité.
    Dans ce cas essaye ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    res(:,1) = cellstr(datestr(matfinal(:,1),'dd/mm/yyyy HH:MM'));
    res(:,2) = cellstr(datestr(matfinal(:,2),'dd/mm/yyyy HH:MM'));
    res(:,3:4)= num2cell(matfinal(:,3:4));

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Par défaut
    ça fonctionne merci beaucoup!!

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

Discussions similaires

  1. [Excel] Export données de MySQL vers Excel
    Par fthem dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 29/11/2010, 17h37
  2. Réponses: 4
    Dernier message: 09/06/2006, 09h33
  3. transfert de données d'access vers excel
    Par courtial dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 16h16
  4. Données de Access vers excel
    Par frevale dans le forum Access
    Réponses: 8
    Dernier message: 02/04/2006, 16h06
  5. Export de données d'Access vers Excel
    Par ROPERS dans le forum Access
    Réponses: 4
    Dernier message: 11/10/2005, 17h44

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