当我多次运行rand
函数时,它会生成一系列随机值,这些值遵循均匀分布,每个值都是从前一个值计算出来的,因此整个序列是针对具有完整性的单个随机变量范围0:1
从中绘制值。
现在在我的模拟程序中,我有两个独立的随机变量X,Y
。在每次迭代中,我应该为每个迭代生成一个新值,有时只为其中一个生成一个值。所以我为X
然后Y
然后X
然后Y
生成一个值...等等。这个生成序列意味着它们共享相同的种子和{{1因此,在一个变量的情况下,生成数字的序列现在分布在两个变量上。
我需要每个变量都有自己独立的序列,而不是共享相同的序列。这是为了模拟的质量。对此有何帮助?
答案 0 :(得分:3)
听起来你想创建两个不同的RandStream
实例,如下所示:
[xstream, ystream] = RandStream.create('mrg32k3a', 'NumStreams', 2)
for ii = 1:1000
x = rand(xstream)
y = rand(ystream)
% compute simulation step here
end
答案 1 :(得分:1)
随机数生成器的设计,返回独立,均匀分布的随机变量。所以,这里没有任何顾虑。如果您担心x& amp; y,那么你需要担心x的不同值之间也存在相关性。人们努力工作非常,以确保随机数生成器中不同值之间的相关性为零(无论种子是什么)。