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 :

Agrégation de données.


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut Agrégation de données.
    Bonjour,

    J'ai un vecteur à n éléments a.
    J'aimerais calculer un vecteur avec à peu près n/30 éléments b.

    La première valeur de b est la moyenne arithmétique des 30 premières
    valeurs de b.
    La deuxième valeur de b est la moyenne arithmétique des 30 valeurs
    suivantes de b.

    En regardant la doc, je pense utiliser smooth.
    Je suis sûr qu'il y a une solution sans avoir à utiliser une boucle for.

    Mais je ne l'ai pas encore trouvée.

    Merci d'avance pour votre réponse.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Par défaut
    Je ne suis pas certain que l'indexage logique puisse permettre de faire tout le boulot de FOR.
    Ici une boucle me semble indispensable mais je me trompe peut etre. As tu fait fait une commande avant d'essayer de trouver une autre solution? ça aide toujours.

    Je n'ai pas testé le code suivant mais c'est l'idée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    x=1
    y=30
     
    for i=1:n/30
      b(i) = sum(a(x:y))/30
      x=x+30.
      y=y+30
    end
    En attendant qu'une personne propose mieux.

    Bon courage

    EDIT: pour moyenne algébrique

  3. #3
    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
    Ça me rappelle un post récent :
    Reduction Matrice et valeurs moyennes

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    j'ai cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smooth(a(15:30:end),30)
    Mais il faut que je vois ce que cela va donner aux extrémités.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Salut,

    perso, je ne comprends pas bien ta demande,
    tu parles de moyenne arithmétiques et tu utilises smooth qui est un opérateur de lissage de données...

    Pourrais-tu être plus précis et nous donner un exemple avec un vecteur de petite taille sur ce que tu veux faire?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  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
    Si j'en crois la documentation, n'ayant pas la toolbox adéquate, SMOOTH ne fait absolument pas ce que tu expliques dans ton 1er post.
    Ou alors j'ai rien compris

    [EDIT] Si tu sais le faire avec une boucle FOR montre-nous ce que tu as fait et on te dira si c'est vectorisable (oh le joli pas français que voilà )

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Par défaut
    Bonjour,

    Voilà la boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    % moyenne mobile avec 60 echantillons
    for i = 1 : (nb-59)
        tl5(i) = mean(t(i:i+59));
    end;

Discussions similaires

  1. agrégation de données datetime
    Par chrass dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 14/06/2011, 09h28
  2. Agrégation des données par demi-heure
    Par Kloun dans le forum Développement
    Réponses: 7
    Dernier message: 17/02/2011, 09h00
  3. [SSIS] [2K8] Agrégation de données
    Par DarkStarDS dans le forum SSIS
    Réponses: 1
    Dernier message: 07/04/2009, 16h56
  4. Agrégation des données avec awk
    Par miketidy dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 14/06/2008, 07h50
  5. Agrégation des données dans JasperReport
    Par MiniDeb dans le forum Jasper
    Réponses: 3
    Dernier message: 21/02/2008, 10h56

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