gpt4 book ai didi

r - 通过索引向量更改多个矩阵元素

转载 作者:行者123 更新时间:2023-12-04 10:37:54 25 4
gpt4 key购买 nike

我有一个矩阵

myMatrix <- matrix(data = 0, nrow = 4, ncol = 4)

[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 0 0 0 0

我想更改特定值
myMatrix[1,1] <- 1
myMatrix[2,3] <- 1
myMatrix[4,4] <- 1

myMatrix

[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 0 1 0
[3,] 0 0 0 0
[4,] 0 0 0 1

如果我有两个包含行和列索引的向量,我该如何高效/优雅地做到这一点:
rowIndexes <- c(1,2,4)
colIndexes <- c(1,3,4)

分配的值是常量(在本例中为 1 )。

我知道如何使用 for -loop,但这感觉效率低下。

最佳答案

我们可以cbind行/列索引,子集 myMatrix并将值赋值为 1

myMatrix[cbind(rowIndexes, colIndexes)] <- 1
myMatrix
# [,1] [,2] [,3] [,4]
#[1,] 1 0 0 0
#[2,] 0 0 1 0
#[3,] 0 0 0 0
#[4,] 0 0 0 1

关于r - 通过索引向量更改多个矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60080972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com