做一个最简单的试验,代码如下
a=c(1,2,3)
b=matrix(c(1,2,3,4,5,6,7,8,9),ncol=3)
a%*%b
#> [,1] [,2] [,3]
#> [1,] 14 32 50
t(a)%*%b
#> [,1] [,2] [,3]
#> [1,] 14 32 50
b%*%a
#> [,1]
#> [1,] 30
#> [2,] 36
#> [3,] 42
b%*%t(a)
#> Error in b %*% t(a): non-conformable arguments
<sup>Created on 2020-04-12 by the reprex package (v0.2.1)</sup>
就感觉很奇怪,如果默认是列向量的话, a*b 就应该报错,如果默认是单独的不分行列的向量的话,最后一行的报错就很奇怪。