0

如何对矩阵进行子集化以获得向量?

> (m <- matrix(1:15,nrow=5,ncol=3))
     [,1] [,2] [,3]
[1,]    1    6   11
[2,]    2    7   12
[3,]    3    8   13
[4,]    4    9   14
[5,]    5   10   15
> (v <- c(1,3))
[1] 1 3
> (u <- c(2,4))
[1] 2 4

我想要的是向量

> c(m[2,1],m[4,3])
[1]  2 14

但我得到的是一个矩阵:

> m[u,v]
     [,1] [,2]
[1,]    2   12
[2,]    4   14

我想我可以使用diag,但我宁愿一步完成。

4

1 回答 1

0

只要确保你传递一个索引矩阵:

> m[cbind(u,v)]
[1]  2 14

对于单个点,转置为您提供一个矩阵:

> m[t(c(4,3))]
[1] 14
> m[t(c(2,1))]
[1] 2
于 2013-08-08T22:46:48.813 回答