You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中生成正态分布随机抽样矩阵报错,求正确实现方案

问题修正方案

错误原因

  1. 未预先初始化x和y对象:R语言不允许直接对不存在的对象的元素进行赋值操作,因此会抛出object x is not found的错误。
  2. 赋值方式错误:rnorm(100)生成的是长度为100的向量,原代码中x[i]是尝试将这个向量赋值给单个元素位置,不符合你需要的每列对应一个随机向量的矩阵结构。

修正后的代码

方式一:修正循环逻辑(保留循环写法)

先创建指定维度的空矩阵,再通过循环给每一列赋值:

# 初始化100行、1000列的空矩阵
x <- matrix(nrow = 100, ncol = 1000)
y <- matrix(nrow = 100, ncol = 1000)

# 循环为每一列生成正态分布样本
for (i in 1:1000) {
  x[, i] <- rnorm(100, mean = 1, sd = 1)
}

for (i in 1:1000) {
  y[, i] <- rnorm(100, mean = 1, sd = 1)
}

方式二:向量化生成(推荐,效率更高)

利用R的向量化特性直接生成矩阵,无需循环:

# 直接生成100行1000列的矩阵,每列是长度为100的正态样本
x <- matrix(rnorm(100 * 1000, mean = 1, sd = 1), nrow = 100, ncol = 1000)
y <- matrix(rnorm(100 * 1000, mean = 1, sd = 1), nrow = 100, ncol = 1000)

注:rnorm(100*1000)会一次性生成100000个符合要求的正态随机数,matrix()函数会自动将这些数按列填充为指定维度的矩阵,完美匹配你“每列对应一个随机向量”的需求。

内容的提问来源于stack exchange,提问作者CF96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:40:57