robert trudel - 7 months ago 133

R Question

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`

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
```

Source (Stackoverflow)