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 :

Afficher date/heure dans un graphe


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut Afficher date/heure dans un graphe
    Bonjour,

    Voilà je souhaite afficher des données en fonction de ma date et non plus en fonction du nombre d'échantillons.

    Pour cela, j'ai deux vecteurs date et time avec ce format :

    date : dd/mm/yyyy
    time : HH:MM:SS

    J'essaie de trouver le moyen le plus rapide d'afficher mon graphique avec l'heure (sachant qu'il peut y avoir jusqu'à 50000 valeurs).

    Je suppose qu'il faut que je concatène le 2 vecteurs, et ensuite les convertir avec datenum ? Mais y a t il d'autres possibilités ?

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 93
    Points : 98
    Points
    98
    Par défaut
    Pourquoi passer en Datenum ?

    Tu peux faire une structure du type : struc={'dd/mm/yyyy HH:MM:SS'}

    (donc il faut bien concaténer tes deux vecteurs) par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:length(VecHeure)
    struc{i}=[VecHeure(i) ' ' VecDate(i)]
    end
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gca,'XTickLabel',struc)
    pense à fixer l'intervalle de x
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(gca,'XTick',-pi:pi/2:pi)

  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 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Voir aussi la fonction DATETICK

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Merci.

    Mais sinon j'ai déjà un problème pour concaténer l'heure et la date.

    Je lis mes valeurs dans un fichier txt. Je les récupère en cell mais je les convertis en matrice.

    Lorsque je les concatène comme ça :

    Cela fonctionne bien mais il manque l'espace entre les 2. Lorsque je le rajoute j'ai une erreur.

    Si je laisse mais données en format cellule, lorsque je les concatène les 2 j'obtiens un vecteur à 2 dimensions !!

    Voilà, première étape et je bloque

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    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 308
    Points : 52 892
    Points
    52 892
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test = strcat(Date, {' '}, Time);

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Merci pour la réponse !

    En plus ça marche dans les 2 cas, que je concatène 2 tableaux de cellules ou 2 matrices.

    J'essaie maintenant de regarder la fonction datetick pour avoir un meilleur affichage visuel.

    J'utilise donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Temps= datenum(Date)
    plot(Temps, Valeur)
    datetick('x',13)
    Mais le souci est que j'ai des dates similaires puisque dans mon enregistrement les millisecondes n'apparaissent pas. Hors avec cette technique je me retrouve avec plusieurs points sur la même heure alors que c'est faux.

    Donc pour le moment je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    plot(valeur)
    set(gca,'XTickLabel',Date)
    Mais le rendu est un peu moins lisible.

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

    Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    plot(Temps,Valeur)
    n = 100;    % Repère toutes les n millisecondes
    set(gca,'xtick',Temps(1):n/86400000:Temps(end));
    datetick('x','HH:MM:SS:FFF','keepticks')

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Merci pour cette réponse !!

    Mais malheureuse ça ne change pas mon problème.

    Le fait de faire :

    plot(Temps,valeur)

    modifie ma courbe, puisque comme j'échantillonne à 2,5 Hz et que dans mon enregistrement je n'ai pas les ms je me retrouve avec 3 ou 4 points sur le même temps.

    La solution qui me reste est de recalculer mon temps en prenant l'heure de départ et l'heure d'arriver séparer par des échantillons de 400 ms. J'aurai un décalage de +/- 200 ms à chaque échantillon.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/09/2007, 08h58
  2. utiliser un format "date heure" dans une formule
    Par Tonton Phil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/08/2007, 14h37
  3. Constantes date/heure dans les requetes
    Par lity7 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 01/08/2007, 17h26
  4. BC6 inserer un enreg de type date/heure dans Access2003
    Par o_live dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/06/2004, 11h13

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