Is there any difference between rand(n,1) and unifrnd(0, 1, n, 1)?

 채택된 답변

Youssef  Khmou
Youssef Khmou 2014년 9월 18일
They both generate sample from uniform distribution, unifrnd offers a possibility to enter the parameters while with rand you need to adjust them, example of uniform distribution of interval [5,10] with size of 400 :
h1=unifrnd(5,10,1,400);
h2=5+5*rand(1,400); % same pdf

댓글 수: 3

In fact, unifrnd will call rand and do the transformation for you. In this specific case though, there is no transformation needed.
r = mu + sig .* (2*rand(sizeOut)-1);
I find no unifrnd in base MATLAB, yet no toolbox is listed above.
@Image Analyst It's in Statistics toolbox

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

추가 답변 (1개)

Anne van Rossum
Anne van Rossum 2016년 6월 29일
There is less error checking in rand, which can be at times preferred... For example, if you need to generated random numbers between a and b, and it doesn't matter if a > b.
a = 5
b = -5
Then:
a+(b-a)*rand(1,400)
But you'll need to make sure a and b are properly ordered for unifrnd:
if (b < a)
[a, b] = deal(b, a);
end
unifrnd(a,b,1,400)
Or else your result will be a vector of NaNs.

카테고리

도움말 센터 및 File Exchange에서 Random Number Generation에 대해 자세히 알아보기

질문:

2014년 9월 18일

답변:

2016년 6월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by