我想生成一个遵循正态分布的随机数,并在某个范围内说[3,17]。
我试过normrnd
,但我无法指定它的范围。
答案 0 :(得分:2)
统计工具箱允许创建截断的分布
数据将不再遵循正态分布,假设将失效,并且通常不是一个好主意......
如果没有给出分布的均值或标准差,将使用以下值:
mu = 10; %center of the range
sigma = 14/6; % range covers mu + or - 3*s.d.
可以按如下方式进行分发和截断
pd=makedist('normal','mu',mu,'sigma',sigma)
pd=truncate(pd,3,17);
可以使用random
nrows=10;
ncols=5;
data=random(pd,ncols,nrows);
hist(random(pd,10e6,1),10000)
可以看出数据落在3到17之间,并且看起来类似于这些边界内的正态分布......但是由于截断它不再正常