Obtaining same values at avery simulation using rand function

조회 수: 1 (최근 30일)
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.

채택된 답변

Wayne King
Wayne King 2012년 9월 14일
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);

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 9월 14일
y=rand(1,100);
save file y
%when you need y
load file

Oleg Komarov
Oleg Komarov 2012년 9월 14일
편집: Oleg Komarov 2012년 9월 14일
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)

카테고리

Help CenterFile Exchange에서 Fuzzy Logic Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by