在R语言中如何向矩阵的随机位置插入指定数值?
R语言实现方案
你可以直接利用R中矩阵的向量存储特性完成操作,核心代码如下:
- 第一步:生成50*50的全0矩阵
mat <- matrix(0, nrow = 50, ncol = 50)
- 第二步:抽取2个不重复的随机位置索引
R内的矩阵默认按列存储为一维向量,直接在总长度范围内抽取不重复的随机值即可作为位置索引,replace = FALSE参数保证两个1不会出现在同一个位置
rand_idx <- sample(length(mat), size = 2, replace = FALSE)
- 第三步:给选中的位置赋值为1
mat[rand_idx] <- 1
如果你有特殊要求,需要两个1不处于同一行/同一列,可以替换第二步和第三步的代码为:
# 分别抽取2个不重复的行号、列号 rand_row <- sample(1:50, size = 2, replace = FALSE) rand_col <- sample(1:50, size = 2, replace = FALSE) # 给对应坐标位置赋值 mat[cbind(rand_row, rand_col)] <- 1
内容的提问来源于stack exchange,提问作者bucky
相关产品推荐
相关产品推荐

