有没有办法让numpy中的随机数生成器生成与Matlab中相同的随机数?比较使用随机数生成的Matlab和Numpy代码
我试图在Matlab如下:
>> rng(1);
>> randn(2, 2)
ans =
0.9794 -0.5484
-0.2656 -0.0963
而且在IPython中与numpy的以下内容:
In [21]: import numpy as np
In [22]: np.random.seed(1)
In [23]: np.random.randn(2, 2)
Out[23]:
array([[ 1.624, -0.612],
[-0.528, -1.073]])
值在两个数组是不同的。
或者有人可能会提出一个好主意来比较Matlab和Python中使用随机数生成的相同算法的两个实现。
谢谢!
你可以尝试使用MATLAB的'twister'默认代替生成器并使用python的内置'random.random()'。不过,我怀疑你将能够重现完全相同的结果。我会说你不应该依赖随机数字是相同的。对于一个好的随机算法,唯一重要的是这些数字是否足够随机,并且我假设MATLAB和numpy实现都足够好。如果你只是想创建随机的输入测试,然后简单地将它们保存到文件,并加载MATLAB和Python的文件。 – Bakuriu