robert trudel robert trudel - 24 days ago 6
R Question

Multiplying two matrices in R

I have 2 matrices.

The first one:

[1,2,3]


and the second one:

[3,1,2
2,1,3
3,2,1]


I'm looking for a way to multiply them.

The result is supposed to be:
[11, 13, 10]


In R,
mat1%*%mat2
don't work.

Answer

You need the transpose of the second matrix to get the result you wanted:

> v1 <- c(1,2,3)
> v2 <- matrix(c(3,1,2,2,1,3,3,2,1), ncol = 3, byrow = TRUE)
> v1 %*% t(v2)
     [,1] [,2] [,3]
[1,]   11   13   10

Or potentially quicker (see ?crossprod) if the real problem is larger:

> tcrossprod(v1, v2)
     [,1] [,2] [,3]
[1,]   11   13   10
Comments