How to Use rand in MATLAB for Random Numbers
In MATLAB, use the
rand function to generate random numbers between 0 and 1. You can call rand with size arguments like rand(m,n) to create an m-by-n matrix of random values.Syntax
The rand function generates uniformly distributed random numbers between 0 and 1.
r = rand: returns a single random number.r = rand(n): returns an n-by-n matrix of random numbers.r = rand(m,n): returns an m-by-n matrix of random numbers.r = rand([m n]): also returns an m-by-n matrix.
matlab
r = rand r2 = rand(3) r3 = rand(2,4) r4 = rand([2 3])
Output
r = 0.8147
r2 =
0.9058 0.1270 0.9134
0.6324 0.2785 0.5469
0.9575 0.9649 0.4218
r3 =
0.7922 0.9595 0.6557 0.0357
0.6555 0.0357 0.8491 0.9340
r4 =
0.6787 0.7577 0.7431
0.4387 0.7431 0.3922
Example
This example shows how to create a 4-by-5 matrix of random numbers and calculate the mean of all values.
matlab
A = rand(4,5); meanValue = mean(A, 'all'); disp('Random matrix A:'); disp(A); disp(['Mean of all elements: ' num2str(meanValue)]);
Output
Random matrix A:
0.8147 0.9058 0.1270 0.9134 0.6324
0.2785 0.5469 0.9575 0.9649 0.1576
0.9706 0.9572 0.4854 0.8003 0.1419
0.4218 0.9157 0.7922 0.9595 0.6557
Mean of all elements: 0.6643
Common Pitfalls
One common mistake is expecting rand to generate integers or numbers outside 0 to 1. rand only produces decimal numbers between 0 and 1.
To get random integers, use randi instead.
Another pitfall is forgetting to specify matrix size, which returns only one number.
matlab
wrong = rand(5); % This creates a 5x5 matrix, not integers correct = randi([1,10],5,5); % This creates a 5x5 matrix of integers from 1 to 10
Output
wrong =
0.8147 0.9058 0.1270 0.9134 0.6324
0.2785 0.5469 0.9575 0.9649 0.1576
0.9706 0.9572 0.4854 0.8003 0.1419
0.4218 0.9157 0.7922 0.9595 0.6557
0.6555 0.0357 0.8491 0.9340 0.6787
correct =
9 3 7 6 2
1 4 5 8 9
2 7 1 3 4
6 8 9 5 7
3 1 2 4 6
Quick Reference
| Usage | Description |
|---|---|
| rand | Single random number between 0 and 1 |
| rand(n) | n-by-n matrix of random numbers |
| rand(m,n) | m-by-n matrix of random numbers |
| randi([a,b],m,n) | m-by-n matrix of random integers between a and b |
Key Takeaways
Use rand to generate random decimal numbers between 0 and 1 in MATLAB.
Specify matrix size in rand(m,n) to get multiple random numbers.
rand does not generate integers; use randi for random integers.
rand([m n]) and rand(m,n) both create matrices of random numbers.
Always check the size of output to avoid unexpected single values.