如何更改另一个矩阵中索引的矩阵中的元素?

时间:2014-03-04 03:55:38

标签: r loops matrix

我有两个矩阵A和B.矩阵B是一个双列矩阵,每行包含一个矩阵A中元素的索引。我想改变矩阵A中的那些元素,它们由矩阵中的每一行索引B,到0。

有没有办法避免使用下面显示的循环?

> A <- matrix(1:12, 3, 4)
> B <- matrix(c(1, 2, 2, 2, 3, 4), byrow = TRUE, ncol = 2)
> A
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> B
     [,1] [,2]
[1,]    1    2
[2,]    2    2
[3,]    3    4
> for (i in 1:nrow(B)) {
+     A[B[i, 1], B[i, 2]] <- 0
+ }
> A
     [,1] [,2] [,3] [,4]
[1,]    1    0    7   10
[2,]    2    0    8   11
[3,]    3    6    9    0

1 个答案:

答案 0 :(得分:3)

这样就完成了

A[B] <- 0;