gpt4 book ai didi

arrays - 替换每个数组元素的矩阵值

转载 作者:行者123 更新时间:2023-12-01 12:18:51 26 4
gpt4 key购买 nike

我有一个 3 维数组 arr,其中每个数组元素都是一个具有相同行数和列数的矩阵。然后我有一个 3 列矩阵 m,其中前两列指定一个索引(行和列),最后一列指定一个值。

arr = array(0, dim = c(2, 2, 3))
m = matrix(c(1, 2, -100, 2, 1, -99), ncol = 3, byrow = TRUE)
colnames(m) = c("row_index", "column_index", "value")

现在我想在每个数组元素的指定索引处填充这个值。我找不到比以下代码行更好的方法来执行此操作,但我更喜欢代码重复较少的解决方案。执行此操作的最佳方法是什么?

arr[, , 1][m[, 1:2]] = m[, 3]
arr[, , 2][m[, 1:2]] = m[, 3]
arr[, , 3][m[, 1:2]] = m[, 3]

最佳答案

这种应用方法怎么样:

arr[] <- apply(arr, 3, FUN = function(x) {x[m[,1:2]] <- m[,3]; x})

arr
# , , 1
#
# [,1] [,2]
# [1,] 0 -100
# [2,] -99 0
#
# , , 2
#
# [,1] [,2]
# [1,] 0 -100
# [2,] -99 0
#
# , , 3
#
# [,1] [,2]
# [1,] 0 -100
# [2,] -99 0

关于arrays - 替换每个数组元素的矩阵值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077685/

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