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 :

Soustractions des matrices de tailles differentes


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Par défaut Soustractions des matrices de tailles differentes
    Bonjour à vous.
    J'ai écrit une fonction qui prend en paramètre une matrice et un vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    fun=function(Mat,X){
     # Mat matrice à  n lignes et p colones
      # X Vecteur de taille p
      m=t(Mat)-X 
         sol=t(m)  
       return(sol)
     
    }
    Soient la matrice Mat et le vecteur X suivants
    je desire faire une soustraction entre chaque ligne de la matrice et le vecteur X.
    Exemple
    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
     
    Mat=matrix(1:9,3,3)
      Mat
         [,1] [,2] [,3]
    [1,]    1    4    7
    [2,]    2    5    8
    [3,]    3    6    9
     
    X=c(2,0,1)
     
    fun(Mat,X)
         [,1] [,2] [,3]
    [1,]   -1    4    6
    [2,]    0    5    7
    [3,]    1    6    8
    pour l'instant je veux modifier cette fonction de tel sorte qu'a la place du vecteur X je prenne plutot une matrice M à q lignes et p colones q<n et pour chaque ligne de M realise la meme opération que celle ce la fonction ci dessus

    La difficulté pour moi est que je ne veux pas utiliser la boucle pour enfin optimiser mon programme.

    Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Par défaut
    Bonjour,

    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
    Fun <- function(Mat, X) {
     stopifnot(length(X) == ncol(Mat))
     Mat - rep(X, each=nrow(Mat))
    }
     
    FunMat <- function(Mat, Xmat) {
     lapply(1:nrow(Xmat), function(x) {Fun(Mat, Xmat[x, ])})
    }
     
    mat   <- matrix(1:9, 3, 3)
    test1 <- c(2, 0, 1)
    test2 <- matrix(1:6, 2, 3)
     
    Fun(mat, test1)
    FunMat(mat, test2)
    HTH

    Vincent

Discussions similaires

  1. [Turbo Pascal] Unité Matrices : Gestion des matrices de taille quelconque afin d'effectuer du calcul numérique réel
    Par Eric Sigoillot dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 07/04/2014, 20h25
  2. Réponses: 0
    Dernier message: 02/01/2013, 09h34
  3. Fusionner des matrices de tailles différentes
    Par Marciane dans le forum R
    Réponses: 2
    Dernier message: 23/04/2012, 14h19
  4. normalisation des matrices en taille
    Par kawther dans le forum Images
    Réponses: 2
    Dernier message: 30/10/2009, 09h09
  5. Soustraction des 2 matrice de taille differentes
    Par hanane78 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/05/2007, 14h15

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