Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-06-20
年龄: 54
帖子: 3
声望力: 0 ![]() |
![]()
各位大虾:
我想例如产生区间 [30,100] 服从平均值=77 标准差=16 的正态分布80个数据 .如何用matlab实现,请给予解答,不胜感激!谢谢 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-08-26
年龄: 38
帖子: 8
声望力: 0 ![]() |
![]()
a=77+sqrt(16)*rand(1,80) %产生服从平均值=77 标准差=16 的正态分布80个数据的行向量
b=30+(100-30)*rand(1,80) %产生区间 [30,100] 的行向量 两种方法结合就可以满足要求了吧! |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-05-04
年龄: 37
帖子: 7
声望力: 0 ![]() |
![]()
楼上给出算法只能得到均匀分布。要正态分布得用randn函数。
我不太明白你是否一定要求随机数处于那个区间。因为正态分布的随机数可能超出那个区间,需要写语句把它们滤掉。 a=77+16*rand(1,160); %产生服从平均值=77 标准差=16 的正态分布160个数据的行向量 a=a((a>30 & a<100));% 保留区间 [30,100]内的行向量 a=a(1:80);%取前80个 |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2008-05-04
年龄: 37
帖子: 7
声望力: 0 ![]() |
![]()
上一贴写错了。
楼上给出算法只能得到均匀分布。要正态分布得用randn函数。 我不太明白你是否一定要求随机数处于那个区间。因为正态分布的随机数可能超出那个区间,需要写语句把它们滤掉。 a=77+16*randn(1,160); %产生服从平均值=77 标准差=16 的正态分布160个数据的行向量 a=a((a>30 & a<100));% 保留区间 [30,100]内的行向量 a=a(1:80);%取前80个 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-06-20
年龄: 54
帖子: 3
声望力: 0 ![]() |
![]()
非常感谢,我再试一下
|
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2010-03-12
帖子: 1
声望力: 0 ![]() |
![]()
我试过了,可以生成,新手学习中,感谢分享!
|
![]() |
![]() |