Create variable number of random streams (unique, deterministic, independent)

For our simulations, we wish to have repeatable (pseudo-)random number generation.
The problem with using a "global " random stream is that it is possibly shared with other MATLAB processes, which can corrput (make non-repeatable) the random generation.
Now, this is solved in part by the 'NumStreams' argument to RandStream.create, e.g.:
[s1,s2,s3,s4] = RandStream.create('mrg32k3a','NumStreams',4)
This creates four unique, deterministic, independent random number streams.
The problem: The left hand side is fixed at four elements.
The question: How do I generalize this to handle a variable number of random number streams? For example:
[???] = RandStream.create('mrg32k3a','NumStreams',K)
I can think of some ad hoc approaches (e.g. using one stream to generate seeds for the remaining streams) but I worry about true independence of the streams.

 採用された回答

Steven Lord
Steven Lord 2022 年 4 月 14 日

0 投票

See the "Substreams" and "Restore State of Random Number Generator to Reproduce Output" sections on this documentation page for more information.

1 件のコメント

AJ
AJ 2022 年 4 月 14 日
Thanks, glad to know it was right there the whole time. : )
And thanks, Steven, for your plethora of contributions over the years; you've been a constant force of good for as long as I can remember using Answers, and the forum that preceded it.

サインインしてコメントする。

その他の回答 (1 件)

AJ
AJ 2022 年 4 月 14 日
With some experimentation, the use of cell arrays is a one solution:
K = 4;
myStreams = cell(1,K);
[myStreams{:}] = RandStream.create('mrg32k3a','NumStreams',K)
I would have preferred a standard array (rather than a cell array), but "Concatenation of RandStream objects is not allowed. Use a cell array to contain multiple objects."

カテゴリ

ヘルプ センター および File ExchangeRandom Number Generation についてさらに検索

製品

リリース

R2021b

質問済み:

AJ
2022 年 4 月 14 日

コメント済み:

AJ
2022 年 4 月 14 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by