我的仿真模型中的统一随机数块

时间:2013-04-19 18:24:48

标签: matlab random simulink

我在我的模拟模型中使用了2个均匀随机数块,但每次运行程序时它们都会生成最后一个数字(完全相同)。我需要用新生成的数字测试模型。我该怎么办?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

随机数生成器从一开始就产生相同的随机数"是一个功能,而不是一个bug。它允许可重复的测试。您需要使用"随机种子"来初始化随机数生成器。为了每次都给出不同的结果 - 例如,你可以使用当前时间。当你这样做时,建议你存储使用的种子 - 这意味着你可以返回并再次运行完全相同的代码。

对于初始化随机种子,您可以使用this earlier answer

中给出的方法

在那个答案中,他们将种子设置为0 - 这与你想要做的事情相反。您将需要生成非随机数(如日期),并使用它。可以找到一篇非常有用的文章here。引用:

  

如果你在一个新的MATLAB中查看rand,randi或randn的输出   会话,您会注意到它们返回相同的数字序列   每次重启MATLAB。能够重置通常很有用   随机数生成器到该启动状态,实际上没有   重启MATLAB。例如,您可能想重复计算   这涉及随机数,并得到相同的结果。

他们推荐命令

rng shuffle

生成新的随机种子。您可以访问与

一起使用的种子
rng.seed

并存储以备将来使用。所以如果你合作

rng shuffle
seedStore = rng.seed;

然后,下次要重现结果时,请设置

rng(seedStore);
相关问题