将一维矩阵转化为R中的向量 >a [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 >a[3,]*a[,3]#我认为这是1x1矩阵的结果。 [1] 21 48 81 >(甲)级 [1] “矩阵” >类别(a[3,]) [1] “整数”

将一维矩阵转化为R中的向量 >a [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 >a[3,]*a[,3]#我认为这是1x1矩阵的结果。 [1] 21 48 81 >(甲)级 [1] “矩阵” >类别(a[3,]) [1] “整数”,r,vector,matrix,rcpp,R,Vector,Matrix,Rcpp,在R中,一维矩阵变成了向量。我能避免这个吗? 我想把一维矩阵作为一个矩阵。事实上,我需要向RcppArmadillo扔很多种矩阵,甚至零维矩阵。将矩阵本身更改为向量是我的问题。这是一个R。您需要执行a[3,drop=FALSE]您混淆了逐元素乘法和矩阵乘法(请参见?“*”)。您想要%*%: > a<-matrix(c(1:9),3,3) > a [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,]

在R中,一维矩阵变成了向量。我能避免这个吗?
我想把一维矩阵作为一个矩阵。事实上,我需要向RcppArmadillo扔很多种矩阵,甚至零维矩阵。将矩阵本身更改为向量是我的问题。

这是一个R。您需要执行
a[3,drop=FALSE]

您混淆了逐元素乘法和矩阵乘法(请参见
?“*”
)。您想要
%*%

> 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"
class(a[3,])
只告诉您存储模式。您可能应该使用str(),因为它会告诉您
长度。
> a[3,]%*%a[,3]
     [,1]
[1,]  150