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

R Discussion :

Moyenne de matrices


Sujet :

R

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut Moyenne de matrices
    Bonjour,

    Une liste appelée out me stocke une série de matrices.

    out[[i]] est de classe matrice de dimension 200*200.

    J'aimerais réaliser la moyenne des matrices contenues dans ma liste de telle façon que l'objet résultant ait les mêmes dimensions 200*200.

    À titre d'exemple, considérant une liste de longueur 2 avec les matrices :
    1 2 3
    2 5 1
    5 2 4
    et
    2 3 1
    4 2 2
    1 2 3
    j'aimerais obtenir
    1.5 2.5 2
    3   3.5 1.5
    3   2   3.5
    Voyez-vous comment obtenir cela ?

  2. #2
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    Ce n'est très probablement pas optimisé mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mat1 <- matrix(c(1,2,3,4,1,9,3,2,1),nrow=3, ncol=3) # matrice 1
    mat2 <- matrix(c(4,8,2,4,5,2,0,3,7),nrow=3, ncol=3) # matrice 2
     
    list.mat <- list(mat1,mat2) # liste des matrices
     
    vecteurs <- lapply(list.mat,as.vector) # passage en vecteur pour appliquer la moyenne
     
    matrix(apply(as.data.frame(vecteurs),1,mean),nrow=3,ncol=3) # moyenne + repassage en matrice
    Je conseille fortement l'utilisation des apply et dérivées plutôt que les boucles !

    Bon courage !

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    Utilise la fonction Reduce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reduce("+",M)/length(M)
    Où M est une liste de matrices.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    merci, c'est nickel !

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

Discussions similaires

  1. C- moyenne floue, matrice de partition
    Par Amara Amel dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 23/04/2013, 10h59
  2. [mean] Calculer la moyenne d'une matrice
    Par hanane78 dans le forum MATLAB
    Réponses: 11
    Dernier message: 20/12/2009, 23h39
  3. [Débutant] Moyenne de matrices
    Par SpidahX dans le forum MATLAB
    Réponses: 6
    Dernier message: 25/08/2007, 03h02
  4. La moyenne des matrices
    Par hanane78 dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/02/2007, 17h49
  5. Calculer une moyenne avec une matrice
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 05/06/2006, 16h47

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