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 :

Sommer dans une double boucle for


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Doctorant
    Inscrit en
    Mai 2014
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 76
    Points : 57
    Points
    57
    Par défaut Sommer dans une double boucle for
    Bonjour,

    J'ai une matrice x de 3773 lignes et 5 colonnes

    colonne 1: les années (365 la valeur 2001 puis 365 fois 2002 etc)
    colonne: 2 les mois (31 fois la valeur 1 (janvier), 28 fois la valeur 2 (février) etc)
    colonne: 3 les jours
    colonne: 4 valeurs A
    colonne: 5 valeur B

    Je souhaite sommer tous les jours pour chaque mois de chaque années

    En toute simplicité pour faire comprendre le problème cela donnerai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=ANNEEdebut:ANNEEfin;
       for j=MOISdebut:MOISfin;
          MoyA=sum(x(:,4));
          MoyB=sum(x(:,5));
       end
    end
    voilà je ne sais pas comment sommer les jours entre eux pour chaque mois de chaque années afin d'avoir des cumuls mensuels.

    le résultat final donnerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    2001  01     200     254
    2001  02     136     154
    2001  03     454     434
    ... 
    2012  12     100     101

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [u,f,i]= unique(x(:,1:2),'rows'); % identifie les valeurs unique de (year,month)
    sums= accumarray(i,x(:,4:5)); % somme par valeurs uniques
    % pour tout indice k, sums(k,:) contient la somme des 2 variables, pour l'année-mois donnée dans u(k).

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2014, 09h20
  2. [Débutant] Générer matrice à partir d'une double boucle for
    Par Matorzk dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/10/2013, 23h12
  3. Comment réaliser une double boucle FOR ?
    Par charlotte77 dans le forum R
    Réponses: 2
    Dernier message: 20/03/2013, 17h41
  4. Unset dans une double boucle
    Par topgun1223 dans le forum Langage
    Réponses: 8
    Dernier message: 08/07/2012, 18h55
  5. Sortir d'une double boucle FOR-END
    Par azboul dans le forum MATLAB
    Réponses: 4
    Dernier message: 05/12/2007, 11h07

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