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

如何在MATLAB中使用randn生成指定均值和标准差的随机数数组?

如何用MATLAB的randn()生成符合要求的数组

完全可以实现,randn()本身生成的是**标准正态分布(均值0,标准差1)**的数组,通过简单的线性变换就能得到你需要的偏差分布,具体步骤如下:

  • 生成满足偏差要求的数组:
    偏差需要均值为0、标准差为n/10,直接对randn()的输出做缩放即可:
    deviations = (n/10) * randn(N, 1);

  • 叠加标称值得到最终结果:
    将偏差数组与标称值n相加,得到每个元素相对于n满足偏差要求的数组:
    result = n + deviations;

完整示例代码

% 自定义参数
N = 150; % 任意正整数
n = 7.8; % 任意整数或浮点数

% 生成目标数组
deviations = (n/10) * randn(N, 1);
target_array = n + deviations;

% 可选:验证偏差的统计特性
bias_mean = mean(target_array - n); % 结果应接近0
bias_std = std(target_array - n); % 结果应接近n/10

原理说明

randn()不直接支持传入均值和标准差参数,但正态分布的线性变换具有可扩展性:若X是标准正态分布($\mu=0, \sigma=1$),则a*X + b会成为均值为b、标准差为a的正态分布。这里我们需要的偏差是$\mu=0, \sigma=n/10$,所以取a=n/10、b=0生成偏差,再叠加标称值n就得到了最终数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:01:05