假设我有一个 matrix:
mat <- matrix(1:25,nrow=5,ncol=5)
我想根据行索引的 matrix 和列索引的另一个 matrix 从 matrix 中提取 values ,说:
row_indices <- matrix(c(1,3,2,5),nrow=2,ncol=2)
col_indices <- matrix(c(1,4,3,2),nrow=2,ncol=2)
所以我的输出应该是:
[,1] [,2]
[1,] 1 12
[2,] 18 10
我将如何以有效的方式去做这件事?
回答1
array(mat[cbind(c(row_indices), c(col_indices))], dim(row_indices))
[,1] [,2]
[1,] 1 12
[2,] 18 10