【问题标题】:Setting the seed for betarnd() in Matlab 2014b在 Matlab 2014b 中为 betarnd() 设置种子
【发布时间】:2015-05-29 16:45:37
【问题描述】:

我正在尝试为betarnd() 设置种子,这样每次我重新运行我的代码时,我都会使用betarnd() 生成的相同值。在别人电脑上以前版本的 Matlab 中,这样做就足够了

randn('seed', num)
rand('seed', num)

例如,每次运行 betarnd(0.5,0.5,[1,15]) 时,她都可以从 beta 分布中抽取相同的随机值集。然而,就我而言,虽然我设置了如上所示的种子,但我得到了不同的值。什么可能导致这种差异?我该如何解决?

【问题讨论】:

    标签: matlab random


    【解决方案1】:

    自 2014 版以来,Matlab 更改了其策略和语法。看看他们的explanation page。基本上,您现在可以像往常一样使用randrandn 函数之前使用rng(sd) 设置种子。

    【讨论】:

    • 所以这可能是一个愚蠢的问题,但我们是否应该在两台不同的机器上从betarnd(0.5,0.5,[1,5]) 得到相同的结果,在其中一台机器上使用rng,在其中一台机器上使用randn 加上rand其他的?
    • 不,据我所知,您会看到不同的行为。这是因为使用的伪随机数生成器不一样。 Matlab 建议在所有情况下都使用rng(seed) 语法。我试过了,它至少在 R2012b 上运行,它是我拥有的最旧的版本。当使用rand('seed', num) 时,您实际上播种了一个特定的遗留RNG,它不是betarnd(...) 使用的RNG,这会导致不同的结果。我希望这能回答你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多