Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
491 views
in Technique[技术] by (71.8m points)

matrix - 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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...