MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   如何产生区间内服从正态分布的随机数 (https://www.labfans.com/bbs/showthread.php?t=4300)

jxzl80926 2008-09-02 09:17

如何产生区间内服从正态分布的随机数
 
各位大虾:
我想例如产生区间 [30,100] 服从平均值=77 标准差=16 的正态分布80个数据 .如何用matlab实现,请给予解答,不胜感激!谢谢

song1987_01 2008-09-02 19:44

回复: 如何产生区间内服从正态分布的随机数
 
a=77+sqrt(16)*rand(1,80) %产生服从平均值=77 标准差=16 的正态分布80个数据的行向量
b=30+(100-30)*rand(1,80) %产生区间 [30,100] 的行向量
两种方法结合就可以满足要求了吧!

Log54 2008-09-04 18:56

回复: 如何产生区间内服从正态分布的随机数
 
楼上给出算法只能得到均匀分布。要正态分布得用randn函数。
我不太明白你是否一定要求随机数处于那个区间。因为正态分布的随机数可能超出那个区间,需要写语句把它们滤掉。
a=77+16*rand(1,160); %产生服从平均值=77 标准差=16 的正态分布160个数据的行向量
a=a((a>30 & a<100));% 保留区间 [30,100]内的行向量
a=a(1:80);%取前80个

Log54 2008-09-04 18:57

回复: 如何产生区间内服从正态分布的随机数
 
上一贴写错了。

楼上给出算法只能得到均匀分布。要正态分布得用randn函数。
我不太明白你是否一定要求随机数处于那个区间。因为正态分布的随机数可能超出那个区间,需要写语句把它们滤掉。
a=77+16*randn(1,160); %产生服从平均值=77 标准差=16 的正态分布160个数据的行向量
a=a((a>30 & a<100));% 保留区间 [30,100]内的行向量
a=a(1:80);%取前80个

jxzl80926 2008-09-08 14:04

回复: 如何产生区间内服从正态分布的随机数
 
非常感谢,我再试一下

zhaohai731 2010-03-15 09:20

回复: 如何产生区间内服从正态分布的随机数
 
我试过了,可以生成,新手学习中,感谢分享!


所有时间均为北京时间。现在的时间是 13:13

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.