开发者

Using rand in matlab to produce numbers between limits [duplicate]

This question already has answers here: Closed 11 years ago.

Possible Duplicate:

Is there a way in Matlab using the pseudo number generator to generate numbers within a specific range?

I want to get 20 random integer numbers between -10 and 10 and I thought of using the rand function in matlab.

I thought of myltiplying by ten and then finding a way to get only the ones between -10 and 10 and u开发者_JS百科se an iteration for each of the other numbers that is outside the limits [-10,10] to get a new number inside the limits.

Is there a better, faster way?


Use

randomIntegers = randi([-10,10],[20,1])

to generate a vector of random integers between -10 and 10.


Although Jonas' solution is really nice, randi isn't in some of the early versions of MATLAB. I believe all versions have rand. A solution using rand would be:

randomIntergers = floor(a + (b-a+1) .* rand(20,1));

where [a,b] is the range of values you want a distribution over.

If you are use round(a + (b-a)) you will have a nonuniform effect on the values of 'a' and 'b'. This can be confirmed using the hist() function. This is because the domain that maps into 'a' and 'b' is half the size for all other members of the range.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜