【问题标题】:How to choose values log-uniformly in Matlab?如何在 Matlab 中均匀地选择值?
【发布时间】:2016-05-08 10:27:50
【问题描述】:

我读过一篇文章,其中一个离散值是在 128 到 4000 之间随机对数均匀选择的,第二个连续值是在 0.001 到 1 之间随机对数均匀选择的。

如何在 Matlab 中做到这一点?

其次,log-uniformly 而不是 uniform 的属性是什么?我假设选择 128 和 4000 之间的对数统一值有利于 128 附近的值,而统一使所有值可能相等,但我不确定这是否属实。

【问题讨论】:

  • @Adriaan 但这不会产生随机数。

标签: matlab random


【解决方案1】:

选择一个基数并将您的区间转换为该基数,然后生成随机数并将其转换回来。这是一个默认分布和基数为 10 的示例

x = log10([128 4000])
r = 10.^(x(1) + (x(2)-x(1)).*rand(100,1));

【讨论】:

  • 谢谢你的例子。所以假设我的区间 [1,100]。这个对数均匀生成的随机数是否意味着左边界附近的值更有可能?
  • @machinery 将您的示例视为 [0,2] 之间的间隔。我们生成随机数。那么如果我将每个元素提升到十次方......?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 2017-02-21
  • 1970-01-01
  • 2017-10-13
  • 2020-11-03
  • 2018-10-24
  • 2012-12-08
相关资源
最近更新 更多