How do I set a seed to generate different random initial numbers and storing them

51 views (last 30 days)
for kk = 1 : Iter
xD = rand(N,1)*2*pi; % Init Cond. Driver
end
  3 Comments
Wiley Mosley
Wiley Mosley on 3 Jul 2020
I think you are wanting a random repeatable setup.
I think the best way to set that up is to review:
Essentially you need to set a random repeatable seed so that you can reinitialize and run with the same random values for refining your code.
rng(1,'twister');
Samson
Samson on 3 Jul 2020
Thank you for your response. However, I do not want the numbers to be repeated. I need to run a100 realizations and having 100 different initial conditions and storing up the initial conditions so I can retrieve any to work

Sign in to comment.

Accepted Answer

Jeff Miller
Jeff Miller on 3 Jul 2020
Maybe the FileExchange contribution RNGMgr will be helpful.

More Answers (1)

Wiley Mosley
Wiley Mosley on 3 Jul 2020
Edited: Wiley Mosley on 3 Jul 2020
rng(1,'twister'); % init generator for random repeatable with seed 1
s = rng; % save generator settings as s
for kk = 1: Iter
xD = rand (N, 1) * 2 * pi; % Init Cond. Driver
end
disp(xD) %just to print out your xD values
rng(s) % Reset the generator
for kk = 1: Iter
xD = rand (N, 1) * 2 * pi; % Init Cond. Driver
end
disp(xD) %printing out the xD values again should show that they match
I believe somthing like this should help you.
  9 Comments
Samson
Samson on 8 Jul 2020
Hello Walter, thank you so much for this simplified version. However, I did run the N=50 oscillators 5 times, that is iter=5 as a sample. on using rng(rstates{4}); to run and do some plot, my results is below:
for kk = 1 : Iter
%rstates{kk} = rng();
rng(rstates{4});
xD = rand(N,1)*2*pi; % Init Cond. Driver
%%% Function Call
[X,t_IF, t_FS, zVals] = changesN_TestChaosMain( N, G, alphaD, omegaD, xD, NumberWindows, WindowLength, dt);
lifetimes(kk) = t_FS - t_IF;
I got the error below:
Error using rng (line 133)
First input must be a nonnegative integer seed less than 2^32,
'shuffle', 'default', or generator settings captured previously
using S = RNG.
Error in changesN_testcall1 (line 92)
rng(rstates{4});
Samson
Samson on 9 Jul 2020
Hello Walter, thank you so much. You were so helpful. I used the following code and it gave me what I needed. However, in case of having the same random numbers, use rng('shuffle'). I have two questions now>
  • In running iteration #40 for instance with same initial conditions, what should I do precisely use the same initial conditions from my code below. I was thinking I have to put the initial values of #40 into the function and run the simulation but do not know how to do it. Kindly show me please.
  • How the I plot the lifetimes of #40 using histogram. Should I say in the command window,
H= histogram(lifetimes(40))?
Iter = 100;
lifetimes = zeros(1,Iter);
for ii = 1: length(omegaDArr) % omega_D iterated
omegaD = omegaDArr(ii);
%%% Repeated Simulations of each pair (DeltaOmega, Epsilon)
xDR = zeros(N,Iter);
for kk = 1 : Iter
xD = rand(N,1)*2*pi; % Init Cond. Driver
xDR(:,kk) = xD ;
%%% Function Call
[X, t_IF, t_FS, zVals] = changesN_TestChaosMain( N, G, alphaD, omegaD, xD, NumberWindows, WindowLength, dt);
end

Sign in to comment.

Categories

Find more on Mathematics in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!