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 :

Problème d'incrémentation de date


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut Problème d'incrémentation de date
    Bonjour,

    Je voulais créer un tableau qui comporte des dates à partir du début de l'année 2003
    date de début du tableau 01-jan-2003 00:00:00 ensuite j'incrémente chaque fois de 6 minutes
    voici mon programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for i=1
       tp(i)= datenum ('01-jan-2003 00:00:00');
       n(i)=1;
    end
    delt=0.004166666651145; % 6 minute en valeur matlab
    for i=2:1:87600  % nombre de pas de temps de 6min dans une année
       tp(i,1)=tp(i-1,1)+delt;
    end
    les valeurs du premier jour sont correctes, mais les dernières ne sont pas vraiment exactes par exemple pour la dernière valeur au lieu de 31-Dec-2003 23:54:00 je retrouve 31-Dec-2003 23:53:59

    est que il y a une solution et comment peut-on additionner des temps sous matlab.

    merci

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Salut,

    Ce code marche bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    tmp = datenum ('01-jan-2003 00:00:00');
    delt = datenum('00:06')-datenum('00:00'); 
     
    tp = tmp + delt*(0:87600) ;
     
    TEST1 = datestr(tp(end-1))
    TEST2 = datestr(tp(end))
    Le décalage que tu a eu viens du tronquage de la valeur de delt , car tu la multiplie par 87600 ...


    ++

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Salut
    merci pour la réponse, ton code et mieux que le mien , mais j'ai toujour le même problème .

    A+

  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
    C'est très moche mais ça évite les approximations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    res=zeros(87600,1);
    tp=zeros(87600,6);
    tp(1,:)=datevec('01-jan-2003 00:00:00');
    for k=1:3
        tp(:,k)=tp(1,k);
    end
    delt=6;
    res(1)=datenum(tp(1,:));
    for i=2:1:87600  % nombre de pas de temps de 6min dans une année
       tp(i,5)=tp(i-1,5)+delt;
       res(i)=datenum(tp(i,:));
    end

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Citation Envoyé par Bonois Voir le message
    Salut
    merci pour la réponse, ton code et mieux que le mien , mais j'ai toujour le même problème .

    A+
    je ne comprend pas, c'est étrange.
    Le problème disparait quand j'exécute le code que j'ai posté sur ma machine. J'ai la version 7.0 .

  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
    Chez moi en version 7.4 (R2007a), ton code donne:
    TEST1 =

    31-Dec-2003 23:53:59


    TEST2 =

    31-Dec-2003 23:59:59

    delt =

    0.0042

  7. #7
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut
    Bravo caro95470, ça marche
    et pour mr samurai aussi bravo, j'ai verifier sur une autre machine où il y a la version 7.0.4 R sous XP ça marche aussi .

    moi j'utilise la version 7.5 (R2007b) sous Wista.

    merci encore

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

Discussions similaires

  1. [FLASH MX] Problème avec l'objet Date
    Par n_tony dans le forum Flash
    Réponses: 13
    Dernier message: 22/03/2005, 13h44
  2. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  4. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43
  5. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 08h19

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