取代气馁rand的语法和randn
气馁的描述语法
在早期版本的MATLAB®,你使用的随机数发生器控制兰德
和randn
功能与“种子”
,“状态”
或“旋风”
输入。例如:
兰特(“种子”,sd) randn(“种子”,sd)兰德(状态,年代)randn(状态,年代)兰德(“龙卷风”,5489年)
这些语法指不同类型的发电机,它们不再推荐以下原因:
条款
“种子”
和“状态”
发电机是带有误导性的名字。所有的发电机除外
“旋风”
是有缺陷的。他们不必要地使用不同的发电机
兰德
和randn
。
评估的影响取代泄气的语法你现有的代码,执行以下命令在MATLAB会话的开始:
警告(“上”,MATLAB: RandStream: ActivatingLegacyGenerators)警告(“上”,MATLAB: RandStream: ReadingInactiveLegacyGeneratorState)
替代语法的描述
使用rng
函数来控制发电机使用的共享兰德
,randn
,兰迪
和其他所有随机数生成函数randperm
,sprand
,等等。学习如何使用rng
函数替换气馁语法时,花一些时间了解其功能。这应该有助于你看到新rng
语法最适合您的需要。
第一个输入兰特(发电机,年代)
或randn(发电机,s)
指定的类型发电机,所述。
|
的v4
和v5
发电机不再推荐,除非你正试图完全重现在MATLAB的早期版本中生成的随机数。最简单的方法来更新你的代码是使用rng
。的rng
函数的名称替换兰德
和randn
发电机如下。
兰特/ randn发生器的名字 | 提高发电机的名字 |
---|---|
“种子” |
v4的 |
“状态” |
|
“旋风” |
“旋风” (推荐) |
替代语法与整数种子初始化发生器
最常见的使用整数种子sd
在兰特(发电机,sd)
语法是:
复制相同的随机数每次(例如,通过使用一个种子如0、1或3141879)
试图确保MATLAB总是给不同的随机数在单独运行(例如,通过使用一个种子等
总和(100 *时钟)
)
下面的表显示了替代语法与整数的种子sd
。
第一列显示气馁的语法
兰德
和randn
。第二列显示了如何准确地再现气馁与新行为
rng
函数。在大多数情况下,这是通过指定一个遗留的发电机类型如v4或v5发电机,不再推荐。第三列显示了建议的替代,它没有指定可选的发电机类型的输入
rng
。因此,如果你总是省略了发电机
输入,兰德
,randn
,兰迪
只使用默认的梅森素数的旋风生成器,用于MATLAB启动。在将来的版本中,当新发电机取代梅森素数的旋风,这段代码将使用新的默认。
气馁兰德/ randn语法 | 不推荐:气馁繁殖行为完全通过指定生成器类型 | 建议选择:不覆盖发电机类型 |
---|---|---|
兰特(“龙卷风”,5489年) |
rng(5489年,“旋风”) |
rng(“违约”) |
兰特(“种子”,sd) |
rng (sd, v4) |
rng (sd) |
randn(“种子”,sd) |
||
兰特(“状态”,sd) |
rng (sd v5uniform) |
|
randn(“状态”,sd) |
rng (sd v5normal) |
|
兰特(“种子”,总和(100 * 24小时)) |
rng(总和(100 *时钟),v4) |
rng(“洗牌”) |
替代语法为初始化状态向量发生器
最常见的使用状态向量(如图所示圣
)兰特(发电机、圣)
语法准确复制产生的随机数在特定的点在一个算法或迭代。例如,您可以使用这个向量作为帮助调试。
的rng
函数变化的模式保存和恢复状态的随机数字生成器,下表所示。左列中的示例假设您正在使用v5
统一的发电机。正确的列中的示例使用新语法,和适用于任何你使用发电机。
使用兰德/ randn气馁的语法 | 新语法使用rng |
---|---|
%保存v5发电机状态。圣=兰德(的状态);%叫兰德。x =兰德;%恢复v5发电机状态。兰特(“状态”,圣);%又叫兰德希望%为相同的结果。y =兰德 |
%得到发电机设置。s =提高;%叫兰德。x =兰德;%恢复以前的发电机%设置。rng(年代);%再次调用兰特和%得到相同的结果。y =兰德 |
演示,看到这个教学视频。
如果你不能升级从沮丧的语法
如果有代码,您不能或不允许修改,你知道它使用气馁随机数发生器控制语法,重要的是要记住,当你使用MATLAB将切换到代码传统模式。在传统模式下,兰德
和randn
由单独的发电机控制,每个都有自己的设置。
调用兰德
在传统模式下使用下列之一:
的
v4的
控制的发电机,兰特(“种子”,…)
的
“v5uniform”
控制的发电机,兰特(“状态”,…)
的
“旋风”
控制的发电机,兰特(“龙卷风”,…)
调用randn
在传统模式下使用下列之一:
的
v4的
控制的发电机,randn(“种子”,…)
的
“v5normal”
控制的发电机,randn(“状态”,…)
如果代码依赖于将MATLAB放入遗留模式,使用以下命令摆脱遗留模式,回到默认启动发电机:
rng违约
另外,保护周围将MATLAB遗留模式的代码,使用:
s = rng %保存当前设置的发电机……%使用遗留随机数发生器语法调用代码。rng (s) %恢复以前设置的发电机。