random numbers -1 +1 with 2 decimals without any distribution

1 view (last 30 days)
Dear all, How can I generate random numbers ranging between -1 to +1 with 2 decimals and without any kind of distribution? Thanks in advance, Diego

Accepted Answer

Walter Roberson
Walter Roberson on 7 Jan 2012
With difficulty.
The -1 to +1 with 2 decimal places is not a problem (to the extent that binary floating point allows representation of 2 decimal places).
The "without any kind of distribution" is a problem. Practically everything has some kind of distribution, even if it is only Uniform Random Distribution. You will get a (researched) distribution if you were to monitor keystroke reaction times; you would get a different distribution (which would not be Uniform Random) if you asked people to enter numbers from 1 to 200.
You can get "cryptographically secure" pseudo-random generators, but those are designed to imitate Uniform Random Distribution.
You have 201 different outcomes, which is divisible by 3 (and not a prime), which interferes with using approaches such as ring theory. Besides, those approaches are for Uniform Random distribution.
Are you sure you cannot accept Uniform Random?
(randi(201) - 101) ./ 100
  7 Comments
Walter Roberson
Walter Roberson on 8 Jan 2012
Create a routine, then when called, randomly generates a mean, and then randomly generates a row that follows a beta distribution between the bounds and which has that particular mean. Next time the routine is called, it would generate a different mean for the row it is about to generate.
In this way, the mean would be fixed for any one call, but would vary with each call.
I don't know if this would serve as a "real control" for your results, but it would at least get you out of the situation of having constant means (such as 0.)
Diego
Diego on 9 Jan 2012
Thank you Walter.
It seems that the only way I can get real controls is by randomly sampling real subjects instead of generating random numbers.
However, random numbers will help me in selecting the subjects to be sampled.
Best,
Diego

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 8 Jan 2012
Perhaps you're simply looking for something like this:
a = -1; % Lower (min) value.
b = +1; % Upper (max) value
numberOfSamples = 50;
% Create r. Range of r is a to b.
r = a + (b-a).*rand(numberOfSamples, 1)
% Chop off beyond 2 decimal places.
samples = floor(r * 100) / 100
  1 Comment
Diego
Diego on 9 Jan 2012
Thank you Image Analyst,
I tried your example and is good.
However I'm still getting a mean pointed around zero.
As I reply to Walter, it seems that the only way of getting real controls is by using real subjects randomly selected.
Best,
Diego

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!