我有一个 n × n 的矩阵,其中的值介于 [0,1] 之间,每一列的值都相同。
这些值表示矩阵中每个元素取值为 TRUE 或 FALSE 的概率。
我正在寻找一种快速的方法,将概率矩阵转换为基于每个元素独立随机样本的 TRUE/FALSE 值矩阵。
目前,这段代码生成了我想要的结果(tf_matrix):
然而,这种方法可能非常慢,因为它使用了两个for循环,并且我需要对一个大矩阵进行反复操作。
有没有办法使这个过程更加高效(即尽可能快速)?
这些值表示矩阵中每个元素取值为 TRUE 或 FALSE 的概率。
我正在寻找一种快速的方法,将概率矩阵转换为基于每个元素独立随机样本的 TRUE/FALSE 值矩阵。
目前,这段代码生成了我想要的结果(tf_matrix):
n <- 10
p_true <- runif(n,0,1)
p_matrix <- matrix(p_true,n,n, byrow=T)
tf_matrix <- matrix(F, n,n)
for(i in 1:nrow(tf_matrix)) {
for(j in 1:ncol(tf_matrix)) {
tf_matrix[i,j] <- sample(c(T,F), size = 1, prob = c(p_matrix[i,j], 1-p_matrix[i,j]))
}
}
然而,这种方法可能非常慢,因为它使用了两个for循环,并且我需要对一个大矩阵进行反复操作。
有没有办法使这个过程更加高效(即尽可能快速)?