MATLAB Answers

Fred
1

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

Fred
さんによって質問されました 2014 年 9 月 18 日
最新アクティビティ Anne van Rossum さんによって 回答されました 2016 年 6 月 29 日
Is there any difference between
rand(n,1)
and
unifrnd(0, 1, n, 1)?

  0 件のコメント

サインイン to comment.

2 件の回答

回答者: 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 件のコメント

John D'Errico
2014 年 9 月 19 日
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);
Image Analyst
2014 年 9 月 19 日
I find no unifrnd in base MATLAB, yet no toolbox is listed above.
Fred
2014 年 9 月 19 日
@Image Analyst It's in Statistics toolbox

サインイン to comment.


回答者: 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.

  0 件のコメント

サインイン to comment.



Translated by