Matlab中有任何函数在闭区间内生成随机实数。我找到了unifrnd()
的内容,但它在开放的时间间隔内生成数字。
如果我使用unifrnd(x,y);
我得到(x,y)间隔,而不是[x,y]。
答案 0 :(得分:3)
鉴于评论中对准确性的讨论,您可以使用以下内容:
mag = floor(log10( y - x))
num = unifrnd(x-(10^mag)*eps, y+(10^mag)*eps)
这基本上增加了一个"点"离散区间表示,考虑到您使用的数字大小的准确性。 unifrnd()
本质上是rand()
的包装器(这意味着您并不需要统计工具箱来执行此操作),因此它实际上只是在(0,1)上缩放均匀分布。如果您对端点感到担忧,那么这很重要,因为您无法使用eps
获得比产品更精细的间隔长度。