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 :

Extraction de la datenum d'une cellule


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Extraction de la datenum d'une cellule
    Bonjour à tous,

    Je vous sollicite(une fois de plus ...) pour m'aider sur une manipulation dans un programme d'analyse de données en continu.

    J'ai extrait d'un fichier texte plusieurs colonnes qui sont à présent dans le workspace sous format cell. Pour cela j'ai utilisé la fonction textscan comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C=textscan(fid,'%s %s %d %d %d %d %d %d') %% pour avoir des cellules de format DATE/HEURES/DATA/DATA/DATA/DATA/DATA/DATA
    A présent je voudrai former des matrices pour ensuite traiter les données qu'elle contiennent.

    Je voudrai extraire la date et l'heure sous forme numérique grâce à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    date=datenum(C{1,1});
    heure=datenum(C{1,2})
    ;

    Ce qui me permettrai ensuite d'additionner les deux matrices et d'avoir la date au format numérique. Seulement la fonction datenum pour les heures nécessiterait que la date 0/0/0 soit intégrer dans les cellules C{1,2}... sinon le résultat est aberrant....



    Comment pourrai-je faire svp??


    Je vous remercie d'avance.

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

    Et pourquoi ne pas le faire en une seule fois?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C = {'2011-07-19', '14:54:12'};
    date=datenum([C{1,1} ' ' C{1,2}],'yyyy-mm-dd HH:MM:SS')
    datestr(date,'yyyy-mm-dd HH:MM:SS')

  3. #3
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Merci la manip semble tout à fait fonctionner.

    Seulement comment faut-il faire pour obtenir dans une matrice toute les valeur de datenum? car j'ai un message d'erreur qui me marque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ??? Error using ==> datenum at 182
    DATENUM failed.
     
    Caused by:
        Error using ==> dtstr2dtnummx
        The input cell array must be either a column or a row.
    lorsque je tape mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datenumer=datenum([C{:,1} ' ' C{:,2}],'yyyy-mm-dd HH:MM:SS')
    Que dois je faire?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mamour71 Voir le message
    Je tombe sur un message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    date=datenum([D ' ' H],'yyyy-mm-dd HH:MM:SS');
    ??? Error using ==> horzcat
    CAT arguments dimensions are not consistent.
    avec D <77140x1 cell> et H<77140x1 cell>...
    Citation Envoyé par mamour71 Voir le message
    je suis donc aller voir le FAQ qui ne me renseigne pas beaucoup sur l'origine de mon erreur......
    Pourquoi ils disent tous ça
    Comme tu le dis, size(D) = 77140x1 et size(H) = 77140x1 ...
    Et que crois-tu que size(' ') renvoie? Surement pas 77140 lignes
    Et que te dit la FAQ que tu as si bien lue?
    Citation Envoyé par FAQ => CAT arguments dimensions are not consistent.
    Solution :

    Pour une concaténation horizontale, le nombre de lignes de toutes les tableaux à concaténer doit être identique.
    Dernière modification par Invité ; 06/12/2011 à 14h08. Motif: Rajout erreur précédente

  5. #5
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Oui pardon je viens de voir cela. J'ai donc concatener les deux mais je me retrouve avec l'erreur que je décris dans le post plus haut (que je viens de modifier vus que je me suis aperçu de mon erreur.... )


    Comment resoudre cela stp?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je te conseille de regarder ce que retourne [C{:,1} ' ' C{:,2}]
    doc strcat pourrait se révéler utile.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    J'ai fait ce que tu m'a conseillé (encore merci...) de faire.

    J'arrive donc a obtenir une cellule <77140x2> mais je n'arrive toujours pas à appliquer la fonction datenum simultanément aux deux colonnes....

    Je rappelle que je suis vraiment novice en Matlab et autodidacte ..... mais a force de pratiquer ca devrait aller de mieux en mieux

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par mamour71 Voir le message
    J'arrive donc a obtenir une cellule <77140x2>
    Là on a un problème: tu devrais avoir un tableau de cellules de 77140x1 pour le rentrer dans datenum
    Citation Envoyé par mamour71 Voir le message
    J'ai fait ce que tu m'a conseillé (encore merci...) de faire.
    À savoir?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Géologue
    Inscrit en
    Novembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    j'obtiens deux cellules <77140x1> que j'extrais de la fonction textscan.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C=textscan(fid,'%s %s %d %d %d %d %d %d')
    .

    L'une de ces cellule détermine la date de la donnée et l'autre l'heure/minute/seconde.

    Pour avoir la valeur numérique de la deuxième cellule, celle ci doit être associé avec une date pour qu'elle soit cohérente.

    Ainsi je rassemble les deux cellules qui me donne au final une cellule <77140x2>.

    Je peux obtenir la date numérique de chaque ligne de cette cellule sans problème avec la manip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date=datenum([C{1,1} ' ' C{1,2}],'yyyy-mm-dd HH:MM:SS')
    mais je n'arrive pas a obtenir une matrice de la totalité des dates numériques....


    Est ce que je suis assez explicite?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ah ok, tu parlais de l'obtention de tes valeurs...
    Mais en ce qui concerne la concaténation, je me répète:
    Citation Envoyé par Winjerome Voir le message
    doc strcat pourrait se révéler utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcat(C(:,1), {' '}, C(:,2))
    Dernière modification par Invité ; 10/12/2011 à 18h55.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/11/2011, 10h09
  2. [XL-2007] extraction 1er/dernier mot d'une cellule
    Par cedinfo17 dans le forum Excel
    Réponses: 4
    Dernier message: 28/08/2011, 04h07
  3. Extraction de texte d'une cellule vers 4 autres
    Par donogoo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/03/2009, 12h31
  4. Réponses: 2
    Dernier message: 17/11/2008, 12h40
  5. [Débutant] extraction dans une cellule
    Par KOFJCH dans le forum Access
    Réponses: 5
    Dernier message: 22/12/2005, 11h06

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