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 :

sommation des éléments d'une colonne avec conditions sur les autres colonnes


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut sommation des éléments d'une colonne avec conditions sur les autres colonnes
    Bjr,
    J'ai un tableau à 3 colonnes. Je cherche à sommer les éléments d'une colonne dont les valeurs des autres colonnes sont identiques. Par exemple :
    40 3 5
    45 3 1
    50 2 6
    45 3 2
    60 1 7
    45 5 8
    34 1 2
    45 3 100

    les lignes 2, 4 et 8 ont les mêmes valeurs de 1er et 2eme colonne.
    Donc le résultat attendu dans ce cas est : 103.

    Merci d'avance pour votre aide.

  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
    Ca doit plus ou moins marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    I=[40 3 5;45 3 1;50 2 6;45 3 2;60 1 7;45 5 8;34 1 2;45 3 100];
    [m,n]=size(I);
     
     
     
    for i=1:m
        Mones=ones(m,1);
        J=I==I(i,1);
        K=I==I(i,2);
        Mones=Mones.*J(:,1);
        Mones=Mones.*K(:,2);
     
        res{i}=sum(Mones.*I(:,3));
    end
    Tu peux aussi utiliser la fonction FIND si tu veux.

  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 313
    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 313
    Points : 52 939
    Points
    52 939
    Par défaut
    Une autre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    M = [40 3 5
        45 3 1
        50 2 6
        45 3 2
        60 1 7
        45 5 8
        34 1 2
        45 3 100];
     
    [uM,a,b] = unique(M(:,1:2),'rows');
     
    n = accumarray(b,M(:,3));
     
    [uM n]
    ans =
    
        34     1     2
        40     3     5
        45     3   103
        45     5     8
        50     2     6
        60     1     7

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    GRAND MERCI pour vos réponses d'un grand secours !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/10/2012, 09h59
  2. Changer l'ordre des éléments d'une JList avec la souris
    Par rafalsh dans le forum Composants
    Réponses: 0
    Dernier message: 02/07/2009, 20h13
  3. comparaison des éléments d'une jTable avec une valeur
    Par kambros dans le forum Composants
    Réponses: 2
    Dernier message: 18/04/2009, 22h26
  4. Réponses: 7
    Dernier message: 28/05/2008, 10h48
  5. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01

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