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 に答える