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