MATLAB:从不同的分布生成两个独立的随机变量
当我多次运行MATLAB:从不同的分布生成两个独立的随机变量,matlab,Matlab,当我多次运行rand函数时,它会生成一个遵循均匀分布的随机值序列,每个值都是根据前一个值计算出来的,因此整个序列是针对单个随机变量的,该随机变量的完整范围为0:1 现在在我的模拟程序中,我有两个独立的随机变量X,Y。在每次迭代中,我都应该为它们中的每一个生成一个新值,有时只为其中一个生成一个新值。所以我为X生成一个值,然后Y然后X然后Y。。。等等。这一生成顺序意味着它们共享相同的种子和0:1范围,因此在一个变量的情况下,之前生成的数字序列现在分布在两个变量上 我需要每个变量都有自己的独立序列,而
rand
函数时,它会生成一个遵循均匀分布的随机值序列,每个值都是根据前一个值计算出来的,因此整个序列是针对单个随机变量的,该随机变量的完整范围为0:1
现在在我的模拟程序中,我有两个独立的随机变量X,Y
。在每次迭代中,我都应该为它们中的每一个生成一个新值,有时只为其中一个生成一个新值。所以我为X
生成一个值,然后Y
然后X
然后Y
。。。等等。这一生成顺序意味着它们共享相同的种子和0:1
范围,因此在一个变量的情况下,之前生成的数字序列现在分布在两个变量上
我需要每个变量都有自己的独立序列,而不是共享同一序列。这是为了模拟的质量。有什么帮助吗?听起来您想创建两个不同的实例,如下所示:
[xstream, ystream] = RandStream.create('mrg32k3a', 'NumStreams', 2)
for ii = 1:1000
x = rand(xstream)
y = rand(ystream)
% compute simulation step here
end
随机数发生器通过设计,返回独立、均匀分布的随机变量。因此,这里没有任何问题。如果您担心x和y之间存在相关性,那么您需要担心x的不同值之间也存在相关性。人们非常努力地工作,以确保随机数生成器中不同值之间的相关性为零(无论种子是什么)。嗯,我真的不知道那么多,但我认为如果它是均匀分布的,那么集合的任何子分区都是过均匀分布的,如果你正在生成它们(即,您根据标准选择一些数字的集合分区不会是,但您描述的情况应该是)不确定为什么会被否决。我认为这是正确的。我认为这正是我想要的。谢谢。