簡體   English   中英

如何更改另一個矩陣中索引的矩陣中的元素?

[英]How to change elements in one matrix indexed in another 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

就是這樣做的

A[B] <- 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM