我在 Mathworks 的文件交换站点上看到了几个Matlab 贡献,作者在使用 mex 编译时使用选项“-DranSHR3”。我检查了mex、 GNU GCC和 Microsoft 的cl文档,但一无所获。
关于这个选项的用途有什么想法吗?我在哪里可以找到有关它的更多详细信息?
谢谢
该选项-DranSHR3
定义了预处理器符号ranSHR3
,它依次选择 SHR3 随机生成器而不是默认生成器。
在这里您可以阅读有关 Matlab 的随机生成器的信息。
在这里,我发现了一个关于 SHR3 的有点长的评论。
至少在 Matlab R2010b 中,随机流的默认生成器是 Mersenne Twister,这是一个非常好的选择。SHR3 与 Mersenne Twister 相比可能更快,我不知道。可以肯定的是,SHR3 的随机属性比 Mersenne Twister 更差,对于初学者来说,它的周期较短,为 2^64,而不是 MT 的 2^19936-1。这是相应的 Matlab 文档。
也许 SHR3 的流行源于 Mersenne Twister 不是默认或兼容性的旧版本?
-D
通常用于设置宏:应该相当于放一个
#define ranSHR3
在任何源文件中。