利用matlab进行仿真,得到了相同的结果



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

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

当您想要重新开始并获得相同的随机数集时,必须调用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绘制的数字都是随机的,但每次都是同一组随机数。

最新更新