matlab Random Number 正态分布
时间: 2025-03-04 15:41:22 浏览: 36
### 使用 `randn` 函数生成正态分布随机数
在 MATLAB 中可以利用内置函数 `randn` 来生成标准正态分布的随机数。此函数能够创建指定维度的数组,其中每一个元素都是独立同分布的标准正态变量[^1]。
对于非标准正态分布(即均值不为零或方差不是一的情况),可以通过线性变换来实现。如果想要得到具有特定平均值 μ 和标准偏差 σ 的正态分布数据,则可按照下面的方式操作:
```matlab
mu = 5; % 均值
sigma = 2; % 标准差
m = 1000; % 行数
n = 1; % 列数
r = mu + sigma .* randn(m, n);
```
这段代码会生成 m×n 大小、均值为μ、标准差为σ的正态分布随机数矩阵 r。
另外一种方式是通过 `normrnd` 函数直接设置所需的参数来获取期望分布的数据集[^5]:
```matlab
data = normrnd(mu, sigma, [m,n]);
```
这里同样指定了均值和标准差,并且定义了输出矩阵大小[m,n]。
当遇到旧版MATLAB中关于随机算法选项的问题时,比如 RandnAlg 不被识别的情况下,应该依据当前使用的MATLAB版本调整相应的配置项名称;例如,在较新的版本里可能是 NormalTransform 而不再是 RandnAlg[^4]。
### 创建自定义随机流并使用 `randn`
为了更精确控制随机数产生的过程以及确保不同计算之间的重复性,还可以建立一个新的 `RandStream` 对象实例,并设定好种子和其他属性之后再调用它的成员方法 `randn` 生产所需类型的伪随机数值序列。
```matlab
stream = RandStream('mlfg6331_64','Seed',1);
prev_stream = RandStream.setGlobalStream(stream);
R = randn(prev_stream,m,n);
```
上述命令先建立了多维反馈移位寄存器生成器 (MLFG),设定了初始状态后替换了全局默认的随机源,最后基于更新后的环境产生了满足条件的结果 R。
阅读全文
相关推荐



















