MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by sita on 25 Jan 2013

Hello,

I want to generate a random number generator 0 to 1 should include values with ten decimal points.As default i get only 4 decimals.

Thanking You,

Sita

Answer by SACHIN GANJARE on 25 Jan 2013

Edited by Jan Simon on 25 Jan 2013

out = rand(1, 1); decimal_out = floor(out * 100000000); decimal_out = decimal_out\100000000;

Answer by Jan Simon on 25 Jan 2013

What about using `rand()` directly, because it satisfies: at least 8 decimal digits already?

Jan Simon on 25 Jan 2013

The limitation to 4 digits appears in the command line only, see: help format.

format long g

disp(rand(2,2))

Although I assume your code is just an abbreviated example, I recommend **not** to use "min" and "max" as names of variables, because this shadows frequently used Matlab commands.

However, I still do not understand your question. What does "fixing the number of decimal points" mean? RAND does reply values like 0.00000000001 also, so what is the problem.

Answer by Evgeny Pr on 25 Jan 2013

Edited by Evgeny Pr on 25 Jan 2013

Do you have the distribution law for pseudo-random numbers for your problem? You can use RAND function for generate uniformly distributed numbers and define its non-linear (or linear) transformation function:

numbers = rand(10); transformedNumbers = transform_function(numbers);

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/59849#comment_125490

Where did all the comments go? Did you delete them? If so, why? Without them our answers looks a little bit unmotivated, not to say lunatic. Therefore removing important data from a thread is not wanted.