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 :

moyenner les colonnes d'une matrice


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 moyenner les colonnes d'une matrice
    Bonjour,

    J'ai une matrice 100 (lignes) x 20 (colonnes): DATA

    Je moyenne les colonnes entre elles pour avoir 2 vecteurs:
    - le vecteur 1 correspond à la moyenne de la colonne 1 à 10
    - le vecteur 2 correspond à la moyenne de la colonne 11 à 20

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MEAN_1=nanmean(DATA(:,1:10),2)
    MEAN_2=nanmean(DATA(:,11:20),2)
    J'aimerai calculer la moyenne en supprimant à chaque fois 2 colonnes
    ca donnerai :

    - le vecteur 1a correspond à la moyenne de la colonne 2 à 10
    - le vecteur 2a correspond à la moyenne de la colonne 12 à 20

    - le vecteur 1b correspond à la moyenne de la colonne 1 à 10 sans la colonne 2
    - le vecteur 2b correspond à la moyenne de la colonne 11 à 20 sans la colonne 12

    - le vecteur 1c correspond à la moyenne de la colonne 1 à 10 sans la colonne 3
    - le vecteur 2c correspond à la moyenne de la colonne 11 à 20 sans la colonne 13

    etc

    Je pense à une boucle dans une autre, mais je n'arrive pas bien à voir comment faire. J'aimerai automatiser la suppression de colonne (la 1 avec la 11, la 2 avec la 12, ... la 10 avec la 20) car ma vraie matrice fait 200 colonnes
    Merci

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    tout simplement comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MEAN_1b=nanmean(DATA(:,[1 3:10]),2)
    MEAN_2b=nanmean(DATA(:,[11 13:20]),2)
     
    MEAN_1c=nanmean(DATA(:,[1 2 4:10]),2)
    MEAN_2c=nanmean(DATA(:,[11 12 14:20]),2)
    cf les chapitres indexage et concaténation de ce tuto

    Fabien

  3. #3
    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
    Oui mais j'ai en réalité 200 colonnes, donc je ne vais pas faire 100 lignes de commande. Je voulais un moyen pour automatiser

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    comme ca alors (si je comprend bien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    % vecteur d'index
    vIdx = 1:100;
    % pré allocation mémoire vecteurs résultats
    MEAN_1 = nan(size(vIdx));
    MEAN_2 = nan(size(vIdx));
    % boucle de calcul
    for ii = 1:vIdx
       % calcul moyenne des 100 1eres colonnes sans la iieme
       MEAN_1(ii) = nanmean(DATA(:,vIdx(vIdx ~=ii),2)
       % calcul moyenne des 100  colonnes suivantes sans la 100+iieme
       MEAN_2(ii) = nanmean(DATA(:,vIdx(vIdx ~=ii) + 100,2)
    end

Discussions similaires

  1. Comparer les colonnes d'une matrice
    Par label85 dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/09/2012, 01h05
  2. récupérer les colonnes d'une matrices
    Par maissaab dans le forum Général Python
    Réponses: 4
    Dernier message: 04/04/2011, 13h05
  3. Réponses: 2
    Dernier message: 08/12/2010, 12h59
  4. Opérations sur les colonnes d'une matrice
    Par george216 dans le forum MATLAB
    Réponses: 6
    Dernier message: 04/01/2010, 08h08
  5. moyenne des colonnes d'une matrices
    Par helaaa dans le forum MATLAB
    Réponses: 6
    Dernier message: 24/06/2009, 18h07

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