1维矩阵变为R中的向量

时间:2012-03-30 19:19:55

标签: r vector matrix rcpp

> 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矩阵。将矩阵单独更改为向量是我的问题。

2 个答案:

答案 0 :(得分:16)

这是R FAQ。您需要a[3,,drop = FALSE]

答案 1 :(得分:9)

您将逐元素乘法和矩阵乘法混淆(请参阅?"*")。你想要%*%

> a[3,]%*%a[,3]
     [,1]
[1,]  150