对于给定方差和均值在matlab中具有均匀分布的数列
问题描述:
我想要使用特定方差(v)和均值(m)的均匀分布生成n个点。对于给定方差和均值在matlab中具有均匀分布的数列
我目前使用MATLAB来完成这项任务。这可以通过使用y = v.*randn(n,1) + m;
正常分布来完成吗?是否有任何直接的方法可以在MATLAB中执行此操作?
答
用于均匀分配使用rand
(randn
用于正态分布)。
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
+1
谢谢,路易斯!这工作... – ccc
是的,但是,我想用一个均匀分布生成的数据集。 – ccc