对于给定方差和 matlab 中的均值具有均匀分布的数字序列

Number series with uniform distribution for a given variance and a mean in matlab

我想使用特定方差 (v) 和均值 (m) 的均匀分布生成 n 个点。

我目前正在使用 MATLAB 来完成这项任务。这可以通过使用 y = v.*randn(n,1) + m;

的正态分布来完成

在 MATLAB 中有没有直接的方法可以做到这一点?

对于均匀分布,使用 randrandn 用于正态分布)。

rand 生成在区间 (0,1) 上均匀分布的数字,因此均值为 0.5,方差为 1/12。要获得不同的均值或方差,您需要移动和缩放:

desired_mean = 3;
desired_var = 5;
N = 1e6; % number of samples
x = sqrt(12*desired_var) * (rand(1,N)-0.5) + desired_mean;

检查:

>> mean(x)
ans =
   3.003083912414557
>> var(x)
ans =
   4.998928353933906