Loading [MathJax]/extensions/TeX/newcommand.js
Skip to main content

Section 3.2 Random numbers and histograms

The command rand produces random numbers uniformly distributed in the interval from 0 to 1. Without providing parameters, we get a single number: x = rand() can make x equal to, for example, 0.8248. With parameters rand(m, n) we get a random mร—n matrix, meaning a matrix in which each entry is chosen randomly.

The command histogram(v, k) displays a histograph of the data collected in vector v using k bins. This means that the interval from min(v) to max(v) is divided into k equal subintervals, and the histogram counts how many data points fall in each subinterval. If the number of bins k is not provided, Matlab will try to choose it itself. Usually we want 10-50 bins. For example,

v = rand(1, 10000);
histogram(v, 20);

produces a histogram from 10000 random numbers. This will not be an interesting histogram since the numbers are uniformly distributed between 0 and 1.

For Octave users: histogram may not be available in Octave, but hist is. They are used in the same way, with one exception: to make a histogram of all entries of a matrix A, one should use hist(A(:)) to flatten the matrix into a vector. With histogram this flattening is automatic, so histogram(A) works.

Suppose we take 10 random numbers, uniformly distributed between 0 and 1, and compute their sum. Repeating this experiment 10000 times, we get 10000 such sums. Plot the histogram of these random sums.

Answer
A = rand(10, 10000);
S = sum(A, 1);
histogram(S, 30);

This histogram resembles a โ€œbell curveโ€ of normal distribution. The similarly grows stronger if we take sums of more numbers, and plot more random sums. This is the content of Central Limit Theorem in probability.