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 :

[datenum] Conversion date Excel sous MATLAB 7


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 [datenum] Conversion date Excel sous MATLAB 7
    Bonjour ,
    j'ai une matrice de n lignes et de 3 colonnes sous excel, la première concerne les dates et les deux autres des suites numériques
    j'utilise ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [ndata,headertext]=xlsread('fichier,'sheet1');
    datefichier=headertext;
    datenumfichier=datenum(datemars2004,'dd/mm/yyyy HH:MM:SS',0);
    fichier=[datenumfichier,ndata];
    le problème c'est que ce code ne comprend pas les dates excel qui sont sous cette forme par exemple
    12/01/2005 00:00:00
    est-ce que quelqu'un a une idée. merci.

  2. #2
    Membre éclairé Avatar de legreg2
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 61
    Par défaut
    Si j'ai bien compris, matlab ne lis que les dates sous la forme '24-Oct-2003 12:45:07'

    Or sous excel, tes dates sont sous la forme : 'dd/mm/yyyy HH:MM:SS' .

    Idée la plus simple : changer le format de la date sous excel (clique droit : format de cellule).

  3. #3
    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 bizarre... peux-tu nous montrer ce que contient ndata ?
    Donne nous tous les chiffres significatifs

    Sinon, c'est quoi cette variable datemars2004 au milieu de ton code ?

  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
    Citation Envoyé par harafado Voir le message
    le problème c'est que ce code ne comprend pas les dates excel qui sont sous cette forme par exemple
    12/01/2005 00:00:00
    Qu'entends-tu par là ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    s='24/01/2005 00:00:00';
    n=datenum(s,'dd/mm/yyyy HH:MM:SS',0)
    Me donne bien quelque chose.

    Sinon elle vient d'où ta variable datemars2004 ?

  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
    non c'est pas le format le problème, c'est que dès que j'ai une date sous excel qui se termine en 00:00:00 (zero heure, zéro minute et zéro seconde) matlab ne fait pas la convertion elle donne un message d'erreur :
    si par exemple j'ai un fichier excel avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    01/01/2004 00:00:01	0.013664231	0.141359579
    01/01/2004 00:02:00	0.013664231	0.148683909
    01/01/2004 00:04:00	0.012451995	0.152346075
    01/01/2004 00:06:00	0.019725412	0.159670405

    et que je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [ndata,headertext]=xlsread('fichier.xls','sheet1');
    datefich=headertext;
    datenumfich=datenum(datefich,'dd/mm/yyyy HH:MM:SS',0);
    fichier=[datenumfich,ndata];
    tout marche bien
    par contre si j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    01/01/2004 00:00:00	0.013664231	0.141359579
    01/01/2004 00:02:00	0.013664231	0.148683909
    01/01/2004 00:04:00	0.012451995	0.152346075
    01/01/2004 00:06:00	0.019725412	0.159670405
    rien ne marche plus
    j'ai un message d'erreur pour datenum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ??? DATENUM failed.
    Failed on converting date string to date number.

  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
    Par défaut
    Quel est ta version de MATLAB ?

  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
    j'utilise matlab 7.0

  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
    Effectivement il y a comme un petit soucis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    datefich = 
     
        '01/01/2004'
        '01/01/2004 00:02:00'
        '01/01/2004 00:04:00'
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [ndata,headertext]=xlsread(...);
    datefich=headertext;
     
    n = cellfun(@numel,datefich);
    idx = find(n==10);
    if ~isempty(idx)
       for k = 1:numel(idx)
           datefich{idx(k)} = [datefich{idx(k)} ' 00:00:00'];       
       end
    end
    datenumfich=datenum(datefich,'dd/mm/yyyy HH:MM:SS');
    datestr(datenumfich,'dd/mm/yyyy HH:MM:SS')
    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [ndata,headertext]=xlsread('Classeur2.xls','feuil1');
    datefich=headertext
     
    n = cellfun(@numel,datefich);
    idx = n == 10;
    datenumfich = zeros(numel(datefich,1));
    datenumfich(idx) = datenum(datefich(idx),'dd/mm/yyyy');
    datenumfich(~idx) = datenum(datefich(~idx),'dd/mm/yyyy HH:MM:SS');
     
    datestr(datenumfich,'dd/mm/yyyy HH:MM:SS')

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur Industriel Electro-Mécanique
    Inscrit en
    Septembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur Industriel Electro-Mécanique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8
    Par défaut
    Bonjour,
    N'y a t'il pas un autre moyen de conversion ?
    Un autre problème est que MATLAB lorsqu'il converti par exemple "30/06/2011 0:00:00" à partir d'une feuille Excel avec [num,text,rax]xlsread, la valeur retrouvées dans text ne contient plus le temps :'30/06/2011' et ce juste pour le temps '0:00:00'...

    Merci.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    "L'autre" problème que tu présentes est le même que harafado, donc qu'est-ce que qui ne te convient pas dans le code de Dut?

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

Discussions similaires

  1. [XL-2013] Exportez date excel sous forme de rendez-vous dans outlook 2010
    Par Abardothe dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2018, 09h00
  2. conversion date Excel - SAS
    Par joyeux_lapin13 dans le forum SAS Base
    Réponses: 3
    Dernier message: 06/04/2010, 11h48
  3. Load & Excel sous matlab
    Par moukah2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/03/2008, 21h47
  4. Problème de version excel sous matlab
    Par mariono dans le forum MATLAB
    Réponses: 1
    Dernier message: 06/07/2007, 12h08

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