原文链接:https://blog.csdn.net/weixin_41785349/article/details/115577500

————————————————

我们每次重新开始运行代码的时候生成的随机数就都是一样的了。

这是因为我们每次重新运行代码的时候都会重置随机种子,当种子数相同的时候,生成的随机数也是一样的。

重复的随机数

randn('seed',100)
randn(3)

 

为什么你每次生成的随机数都一样,因为你每次重新运行程序的时候seed都默认设置为0了,

所以你每次都会生成一样的随机数,如果你想生成不一样的随机数,你可以在运行randn前加上这样一行代码

randn('seed',sum(100*clock))

然后再输入

randn(3)这样你就可以每次都得到不一样的随机数了

————————————————

http://health.ahs.upei.ca/KubiosHRV/MCR/toolbox/matlab/demos/html/zh_CN/rngdemo.html

1. rng 提供了一种非常简单的方式来将随机数生成函数重置为其默认设置。

rng default
rand % returns the same value as at startup
ans = 

     Type: 'twister'
     Seed: 0
    State: [625x1 uint32]

2. rng 通过基于当前时间创建种子,为您提供了一种选择种子的简单方式。
rng shuffle  % creates a different seed each time
rand

每次使用 'shuffle' 时,都将为生成函数提供一个不同的种子。 您可以调用不带任何输入的 rng 来查看实际所使用的种子。

rng
ans = 

     Type: 'twister'
     Seed: 1988908430
    State: [625x1 uint32]


您可以多次使用相同的种子来重复进行相同的计算。 例如,如果运行下面的代码两次..
rng(1) % the seed is any non-negative integer < 2^32
x = randn(1,5)

 

 posted on 2022-07-11 15:20  Real_Yuan  阅读(462)  评论(0)    收藏  举报