如何产生正态分布的随机数
请问,怎们样用编程可以产生在一定取值范围内符合正态分布的随机数。取值范围(a<x<b)。谢谢!
[ 本帖最后由 eight 于 2007-6-20 17:15 编辑 ] 请看看本版关于信噪比的精华贴
ps:发帖时,请勿使用大量无谓的符号
[ 本帖最后由 ChaChing 于 2010-4-2 22:31 编辑 ] 界于(a,b)之上的随机数不可能正态分布。 vibrationMaster太严谨拉。
[ 本帖最后由 ChaChing 于 2010-4-2 22:32 编辑 ] 那么用randn产生的随机数是在(-1,+1)之间产生的正态分布的随机数,如果用k=a+(b-a)/2*(1+randn(100,1))转化一下产生的区间,不知这样可不可以认为数组k在(a,b)内符合正态分布。
回复 #5 牛仔裤 的帖子
vibrationmaster都说过拉,真正的正态分布区间是负无穷到正无穷,无论做什么线形变换都不会变成有限区间的. 谢谢指点!! 明白了!!!正态分布的区间是负无穷到正无穷,如果我想产生一系列符合正态分布的随机数,在整个正负无穷的区间内选取(a,b)区间内的数作为样本,样本个数为n,(a+b)/2这一点恰是正态分布的均值,方差为c。请问这样的数列能否获得。谢谢指点。 a = 1; b = 10; c =4; n = 1000;
x = randn(1,n);
x = x/std(x)*sqrt(c);
x = x -mean(x)+(a+b)/2;
index = find(x>=a & x<=b);
pseudogauss= x(index); 十分感谢!3Q!以后请多多指点!
[ 本帖最后由 eight 于 2007-6-21 22:27 编辑 ] 我过来学习中,。
页:
[1]