13
> 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 中,一维矩阵变为向量。我可以避免这种情况吗?我想将一维矩阵保留为矩阵。实际上,我需要向 RcppArmadillo 抛出多种矩阵,甚至是零维矩阵。将矩阵本身更改为向量是我的问题。

4

2 回答 2

18

这是一个 R常见问题解答。你需要做a[3,,drop = FALSE]

于 2012-03-30T19:21:58.173 回答
9

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

> a[3,]%*%a[,3]
     [,1]
[1,]  150
于 2012-03-30T19:35:37.760 回答