Matlab函数,在闭区间内生成随机实数

时间:2016-05-10 17:12:44

标签: matlab function intervals real-number

Matlab中有任何函数在闭区间内生成随机实数。我找到了unifrnd()的内容,但它在开放的时间间隔内生成数字。 如果我使用unifrnd(x,y);我得到(x,y)间隔,而不是[x,y]。

1 个答案:

答案 0 :(得分:3)

鉴于评论中对准确性的讨论,您可以使用以下内容:

mag = floor(log10( y - x))  
num = unifrnd(x-(10^mag)*eps, y+(10^mag)*eps)

这基本上增加了一个"点"离散区间表示,考虑到您使用的数字大小的准确性。 unifrnd()本质上是rand()的包装器(这意味着您并不需要统计工具箱来执行此操作),因此它实际上只是在(0,1)上缩放均匀分布。如果您对端点感到担忧,那么这很重要,因为您无法使用eps获得比产品更精细的间隔长度。