how to close rng 'default' after using it once in a same program

13 views (last 30 days)
Suppose, there is a scenario where I am using random number generator(rand(n,1)) which I need to fix for the values of a variable for a loop. So, I am using the command rng 'default'. Again in the same program I need to vary the random numbers in some other loops. But for For this I need to stop rng 'default ' command. Can anybody tell me how to do this?
Thanks in advance.
  2 Comments
Adam Danz
Adam Danz on 23 Sep 2019
Edited: Adam Danz on 24 Sep 2019
I don't recommend setting rng('default') within a loop, if that's what you're doing. That defeats the purpose of using a random process since every iteration would have the same sequence of random numbers. If you need to keep track of the random number generator seed for each iteration of a loop, you can store it like this.
n = 5
rngState = [];
for i = 1:n
rngState = [rngState; rng()];
% Your code here
end
seeds = [rngState.Seed]
Adam Danz
Adam Danz on 1 Oct 2019
@RAJ DATTA, if you was rng('shuffle') not the answer you were looking for? Maybe there's a different interpreptation of "For this I need to stop rng 'default ' command."

Sign in to comment.

Answers (1)

Adam Danz
Adam Danz on 23 Sep 2019
Edited: Adam Danz on 25 Sep 2019
"For this I need to stop rng 'default ' command. Can anybody tell me how to do this? "
rng('shuffle')
will re-seed the random number generator based on the current time.
For more info:

Community Treasure Hunt

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

Start Hunting!