> a<-matrix(c(1:9),3,3)
> a
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> a[3,]*a[,3] # I expect 1x1 matrix as result of this.
[1] 21 48 81
> class(a)
[1] "matrix"
> class(a[3,])
[1] "integer"
在R中,1维矩阵变为向量。我可以避免这个吗? 我想保留1-D矩阵作为矩阵。实际上,我需要向RcppArmadillo抛出许多种矩阵,甚至是零D矩阵。将矩阵单独更改为向量是我的问题。
答案 0 :(得分:16)
这是R FAQ。您需要a[3,,drop = FALSE]
。
答案 1 :(得分:9)
您将逐元素乘法和矩阵乘法混淆(请参阅?"*"
)。你想要%*%
:
> a[3,]%*%a[,3]
[,1]
[1,] 150