R中矩阵乘法的意外结果

时间:2014-07-24 15:20:43

标签: r

R程序不返回预期的矩阵乘法

    a<- c(0,1,1,0)
    A<- matrix(a,2,2)
    B<- matrix(c(1,2,3,4),2,2,byrow=TRUE)
    A*B

给出matrix(c(0,2,3,0), ncol = 2, byrow=TRUE)的最终答案:

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

但实际答案应为matrix(c(3,4,1,2), ncol = 2, byrow=TRUE)

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

1 个答案:

答案 0 :(得分:2)

您可以使用%*%crossprod进行矩阵乘法

> A %*% B
     [,1] [,2]
[1,]    3    4
[2,]    1    2

> crossprod(A, B)
     [,1] [,2]
[1,]    3    4
[2,]    1    2 

请注意,结果是2x2矩阵,如果您想要示例中的矢量,则使用matrix(crossprod(A, B), ncol=1)