rand('seed',1)

98 Ansichten (letzte 30 Tage)
Ricky
Ricky am 30 Nov. 2011
Beantwortet: ZHU CHENG-CHIH am 27 Mär. 2020
hi there, can anyone explain me the different between using 'rand('seed',1)' inside the loop and outside the loop? Assuming I generate some random number inside the loop.
Ta,Rak

Akzeptierte Antwort

Jan
Jan am 30 Nov. 2011
Seeding the random number generator means initializing it to a certain status. Seeding inside the loop means, that all "random" numbers created inside the loop will be the same in each iteration:
for i = 1:3
rand('seed', 1);
disp(rand);
end
Result: 0.51291 0.51291 0.51291
This is not very useful. Seeding RAND outside the loop allows you to reproduce the results:
for j = 1:2
rand('seed', 1);
for i = 1:3
disp(rand);
end
end
Now you get two series of 3 different numbers:
0.51291 0.46048 0.3504 0.51291 0.46048 0.3504
  3 Kommentare
Ricky
Ricky am 1 Dez. 2011
got it now, thanks alot
Peter Perkins
Peter Perkins am 1 Dez. 2011
Unless you are using an extraordinarily old (from the early 1990's) version of MATLAB, you should not be using rand('seed',1) at all. It most likely does not do what you think it does. If you are using R2011a or newer, see this:
<http://www.mathworks.com/help/techdoc/math/bs1qb_i.html>
Otherwise, see the documentation in whatever version you are using.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

ZHU CHENG-CHIH
ZHU CHENG-CHIH am 27 Mär. 2020

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by