2

可能重复:
如何为伪随机数生成器设置自定义种子

我正在用 matlab 构建一些模拟,并使用rand函数。

我想在每次运行时都获得相同的结果。我在某处读到我必须设置 rand 函数的种子。我尝试使用

s = RandStream('mcg16807', 'seed', 0)
RandStream.setGlobalStream(s);

但它没有用。我做错了吗?

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

>> rand
ans = 

    0.7520
4

1 回答 1

0

RandStream.setGlobalStream当您想重新开始并获得相同的随机数集时,您必须调用:

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

>> s = RandStream('mcg16807', 'seed', 5)
>> RandStream.setGlobalStream(s);
>> rand

ans = 

    0.5645

>> rand
ans = 

    0.3024

我通常setGlobalStream只打电话一次,在我想每次都给我相同答案的脚本开头。抽到的数字rand都是随机的,但每次都是同一组随机数。

于 2012-09-15T12:34:40.350 回答