我正在使用以下代码从矩阵中选择一个随机值。 probMatrix包含每个单元格的概率权重。 sample( )
从exampleMatrix返回一个随机单元格值。
probMatrix <- matrix(0.2,nrow=2,ncol=2)
exampleMatrix <- matrix(1:4,nrow=2,ncol=2)
sample(exampleMatrix, 1, prob=probMatrix)
我希望能够得到拉出随机值的矩阵单元的参考/坐标。有没有办法实现这个目标?
我需要矩阵单元坐标来更新我正在尝试模拟的系统状态(probMatrix和exampleMatrix)。
提前致谢。
答案 0 :(得分:0)
如果您需要索引,则样本形成可能的索引并使用该索引提取值。您可以使用arrayInd
获取行/列。例如
set.seed(22)
(si <- sample(1:length(exampleMatrix), 1, prob=probMatrix))
# [1] 3
(sv <- exampleMatrix[si])
# [1] 3
(scoor <- arrayInd(si, dim(exampleMatrix)))
# [,1] [,2]
# [1,] 1 2