Mersenne Twister RNG init_by_array

 Accepted Answer

Jan
Jan on 20 Jun 2017
Edited: Jan on 20 Jun 2017
No, this is not possible in Matlab. As far as I know, you can seed it with 32 bits only - but I'm still such surprised about this, that I hope I've overseen a detail.

1 Comment

Thanks! Is there a simple way to use the C implementation as an external lib and to initialize it from there?

Sign in to comment.

More Answers (1)

The "array" you are talking about is typically a state vector, right? You can set the generator state:
>> r = RandStream.getGlobalStream
r =
mt19937ar random stream (current global stream)
Seed: 0
NormalTransform: Ziggurat
>> s = r.State;
>> rand(1,5)
ans =
0.09754 0.2785 0.54688 0.95751 0.96489
>> r.State = s;
>> rand(1,5)
ans =
0.09754 0.2785 0.54688 0.95751 0.96489

1 Comment

Hi, No, the C implementation has a function (init_by_array) that maps arbitrary array (in any length) into a state vector.
Thanks!

Sign in to comment.

Categories

Find more on Random Number Generation in Help Center and File Exchange

Asked:

on 20 Jun 2017

Commented:

on 28 Jun 2017

Community Treasure Hunt

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

Start Hunting!