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 use 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
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 haverand
. A solution usingrand
would be: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 thehist()
function. This is because the domain that maps into 'a' and 'b' is half the size for all other members of the range.