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

4 次查看(过去 30 天)
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 个评论
Adam Danz
Adam Danz 2019-9-23
编辑:Adam Danz 2019-9-24
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 2019-10-1
@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."

请先登录,再进行评论。

回答(1 个)

Adam Danz
Adam Danz 2019-9-23
编辑:Adam Danz 2019-9-25
"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:

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by