Obtaining same values at avery simulation using rand function

I'm building some simulations with matlab and I use rand function. I would obtain at every run, the same results. I read somewhere I have to set the seed of rand function. I tried using
s = RandStream('mcg16807', 'seed', 0)
RandStream.setGlobalStream(s);
but it didn't work.Maybe I made some mistake.

 Accepted Answer

I think you should use the newer rng
rng default;
x = randn(100,1);
rng default
y = randn(100,1);
max(abs(x-y))
x and y are the same sequence.
In general, you can capture the random generator settings and resuse them
S = rng;
x = randn(100,1);
rng(S)
y = randn(100,1);

More Answers (2)

You can use rng()
rng(1)
rand(1,5)
rng(1)
rand(1,5)
Or with your approach:
s = RandStream('mcg16807', 'seed', 0);
RandStream.setGlobalStream(s);
rand(1,5)
s = RandStream('mcg16807', 'seed', 0);
RandStream.setGlobalStream(s);
rand(1,5)

Categories

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

Community Treasure Hunt

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

Start Hunting!