使用matlab在每次模拟中获得相同的结果

时间:2012-09-14 20:22:28

标签: matlab random simulation random-seed

  

可能重复:
  How to set custom seed for pseudo-random number generator

我正在用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

1 个答案:

答案 0 :(得分: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绘制的数字都是随机的,但每次都是相同的随机数集。