La matrice de la Multiplication dans r
Je suis en train de multiplier chaque ligne d'une matrice par la colonne d'une autre matrice. Par exemple:
mat1 <- matrix(rnorm(10), nrow=5, ncol=2)
mat2 <- matrix(rnorm(5), nrow=5)
Je veux multiplier chaque ligne de mat1 par mat2. La forme souhaitée de la sortie est de 5*2.
Si vous voulez multiplication de matrice, comme le suggère le titre, c'est à dire, vous voulez multiplier les lignes de la première matrice par des colonnes de la deuxième, c'est
mat1 %*% mat2
. Mais cela exige de la première matrice d'avoir autant de colonnes que le deuxième a des lignes -- qui n'est pas le cas dans ton exemple.OriginalL'auteur mike | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser
apply()
à multiplier chaque colonne de mat1 par mat2. (Le"*"
effectuera R est généralement vectorisé élément-sage multiplication des deux égale à la longueur des vecteurs).Ou, mieux encore, de les convertir
mat1
à un vecteur pour prendre avantage de la R de règles en matière de recyclage:OriginalL'auteur Josh O'Brien
Votre première matrice a cinq lignes et deux colonnes; votre deuxième matrice a cinq lignes et une colonne. Si ils ont le même nombre de lignes et la seconde a toujours une colonne vous pouvez faire
Si
mat1
effectivement eu autant d'éléments dans ses lignes quemat2
avait dans sa colonne unique (tel que vos mots suggèrent) vous permettra d'adapter un peuou dans de sarah version
OriginalL'auteur Henry