生成不同的随机数 |
您所在的位置:网站首页 › matlab中如何产生随机数 › 生成不同的随机数 |
所有随机数函数(rand、randn、randi 和 randperm)均可从共享随机数生成器中抽取值。每次启动 MATLAB 时,生成器都会使用默认算法和种子将自身重置为相同的状态。因此,当您在对随机数生成器使用相同预设项的不同 MATLAB 会话中启动后立即执行一个命令(例如 rand(2,2))时,该命令会返回相同的结果。此外,无论何时重新启动,任何调用随机数函数的脚本或函数均返回相同的结果。 当您第一次启动 MATLAB 会话或调用 rng("default") 时,MATLAB 使用默认算法和种子初始化随机数生成器。从 R2023b 开始,您可以在 MATLAB 预设项中设置默认算法和种子。如果您不更改这些预设项设置,则与以前的版本一样,rng 将使用种子为 0 的梅森旋转生成器的出厂值 "twister"。有关详细信息,请参阅 随机数生成器的默认设置 和 随机数生成器的可再现性。 一种获得不同随机数的方法是每次使用不同的种子初始化生成器。这样做可确保不会重复出现上一次会话的结果。 在调用任何随机数函数之前,在 MATLAB 会话执行一次 rng("shuffle") 命令。 rng("shuffle")可以在 MATLAB 命令行窗口中执行此命令,也可以将其添加到启动文件中,这是 MATLAB 每次重新启动时都要执行的特殊脚本。 现在执行随机数命令。 A = rand(2,2);在每次调用 rng("shuffle") 时,它都根据当前的时间使用不同的种子重新设定生成器的种子。 注意 频繁地重新设定生成器的种子既不会改进输出的统计特性,也不会在真正意义上使输出更加随机。在重启 MATLAB 时或在运行涉及随机数的大型计算之前重新设定种子非常有用。然而,在一个会话中过于频繁地重新设定生成器的种子并不是理想的做法,因为随机数的统计特性会受到不利影响。 或者,在使用默认算法的不同 MATLAB 会话中显式指定不同种子。例如,在一个 MATLAB 会话中生成随机数。 rng(1); A = rand(2,2);在另一个 MATLAB 会话中使用不同种子生成随机数。 rng(2); B = rand(2,2);数组 A 和 B 不同,因为在每次调用 rand 函数之前,都会用不同的种子对生成器进行初始化。 要生成保证不重叠的多个独立流,并且已对其执行证明流之间值的独立性的测试,可以使用 RandStream.create。有关生成多个流的详细信息,请参阅多个流。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |