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 :

Somme sous condition


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Somme sous condition
    Bonjour,

    J'ai une matrice test et je souhaite effectuer une somme par colonne de tous les éléments supérieurs à x. En faisant sum(test>x), matlab me renvoie le nombre d'éléments supérieurs à x mais pas leur somme.
    Y a t il un moyen d'effectuer cette somme sous condition sans passer par une boucle?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S = sum(test.*(test>x))

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Résolu, mais comment interpréter le .*? En quoi l'ajout de ces caractères lui fait comprendre de travailler par colonne?

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Le travail par colonne est fait par la fonction SUM.
    Le .* lui indique de faire la multiplication terme à terme entre test et la matrice test > 0 des 0 et 1 ... Le resultat ( test.*(test>x) ) est de même taille que test avec des 0 pour les valeurs inférieurs à x .

  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 316
    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 316
    Points : 52 948
    Points
    52 948
    Par défaut
    Et avec l'exemple qui va avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    test = [1 2 3 ; 4 5 6 ; 7 8 9]
     
    x = 2
     
    test>x
     
    test.*(test>x)
     
    sum(test.*(test>x))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    test =
     
         1     2     3
         4     5     6
         7     8     9
     
     
    x =
     
         2
     
     
    ans =
     
         0     0     1
         1     1     1
         1     1     1
     
     
    ans =
     
         0     0     3
         4     5     6
         7     8     9
     
     
    ans =
     
        11    13    18

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Bien sûr!
    Merci bien.

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

Discussions similaires

  1. Calculer une somme sous conditions.
    Par Julieta dans le forum Excel
    Réponses: 1
    Dernier message: 22/02/2010, 19h36
  2. Faire une somme sous condition
    Par maystreet dans le forum Deski
    Réponses: 1
    Dernier message: 16/03/2009, 16h43
  3. Somme sous condition
    Par ANTMA dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/12/2007, 17h55
  4. Somme sous condition
    Par sunvialley dans le forum Débuter
    Réponses: 9
    Dernier message: 30/04/2007, 14h51
  5. [Excel] Calcul d'une somme sous condition
    Par netsabes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2006, 16h09

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