请问如何在MATLAB中生成一组在规定范围符合指定分布的随机数

2019-07-17 12:55发布

tica, Arial, sans-serif">如何在matlab中生成一组在规定范围符合指定分布的随机数如何在MATLAB中生成一组在规定范围符合指定分布的随机数
例如,我想在1-60之间得到10个服从标准正态分布的随机数,如何实现??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
kevinvind
1楼-- · 2019-07-17 15:22
             先用标准正态随机产生函数randn(1,n);生产一个符合标准正态分布的数列,看看其最大最小值是多少,然后在函数前应映的乘以某个常数来达到你想要求的定义域范围。你想要的是1~60,那需要乘以10以上的常数了,randn(1,100000),产生的数才到4.3左右,
例子:x=23.*randn(1,500);  %产生500个元素,
            y=find(x>=1&x<=60);% 找出大于1且小于60的元素。y数组为x大于1小于60的元素的位置序号,别搞错了
            x=x(y(1:10));%找出这些位置所对应的x的值,找出10个。
其实这种方法只是一个大概的过程,不能保证这10个1到60间的元素一定符合正态分布的。因为是随机取的这十个数,只能是大概符合。完全符合的程序还没想到。

评分

参与人数 1威望 +10 +10 积分 +10 收起 理由 assingle + 10 + 10 + 10

查看全部评分

东风恶
2楼-- · 2019-07-17 18:59
 精彩回答 2  元偷偷看……
YYueKang
3楼-- · 2019-07-17 23:23
kevinvind 发表于 2011-3-17 11:41
先用标准正态随机产生函数randn(1,n);生产一个符合标准正态分布的数列,看看其最大最小值是多少,然后在函数前应映的乘以某个常数来达到你想要求的定义域范围。你想要的是1~60,那需要乘以10以上的常数了,randn(1,100000),产生的数才到4.3左右,
例子:x=23.*randn(1,500);  %产生500个元素,
             ...

请问,我要生成45到120之间,服从指数分布的随机数,应该怎么做?拜托了

一周热门 更多>