Problem with rng shuffle

조회 수: 12 (최근 30일)
Aftab Ahmed Khan
Aftab Ahmed Khan 2015년 2월 25일
댓글: NEELU GUPTA 2019년 2월 24일
Hello everyone, I am running my simulation for like 50000 iterations but when i use
rng('shuffle')
during each iteration, the processing speed of my computer gets very slow. I want to understand that why this one line of code has so much effect on my computer ?

채택된 답변

Peter Perkins
Peter Perkins 2015년 2월 25일
As Sean said, don't reset the random number generator in a loop. There's no good reason to do it. You are NOT making your random number "more random", and in fact, you are likely making them less random in very complicated ways. DON'T DO THIS. I can't say that strongly enough.
'shuffle' pauses for .01s each time you call it to ensure that it uses a new seed that's different than the last time you called it. That's why it's slowing down your code.

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2015년 2월 25일
Why do you want to reset the stream on each iteration? This will be slow. The stream is random, so just set it once at the beginning of the run.
  댓글 수: 1
Aftab Ahmed Khan
Aftab Ahmed Khan 2015년 2월 25일
Hi, thank you for the reply but i want to understand that why it makes everything slow ?

댓글을 달려면 로그인하십시오.


Chuck
Chuck 2016년 5월 5일
I have noticed this too. Even if you do not shuffle in every generation and shuffle it once, it will be slower than rng("default"). Of course, it might be unnoticeable depending on your code.
But... We do not know the nature of your iterations. If you are using parallelization (e.g. parfor), than you need to do rng("shuffle") right after the parfor definition line. Otherwise, after each individual for loop is done, it goes back go rng("default").
If your iterations are not using parallelization, then you should be fine by just adding that at the beginning of your code.
  댓글 수: 1
NEELU GUPTA
NEELU GUPTA 2019년 2월 24일
Sir, How and why we use rng(shuffle), I am trying to calculate average of 2000 iterations using random number

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by