MATLAB: Size input must be scalar using rand to generate uniformly distributed numbers

random number generatoruniform distribution

I want to generate a set of random numbers which contains 1000 uniformly distributed numbers on the interval [-1,1]. I am getting the error that input must be scalar.
my code:
a = rand(1000,[-1,1]);
Error:
Error using rand
Size inputs must be scalar.

Best Answer

rand() does not accept the range of random values. It always generates values between 0 and 1. You need to rescale yourself.
lb = -1;
ub = 1;
a = rand(1000,1)*(ub-lb) + lb; % 1000x1 vector