trirnd
randomValue = TRIRND(minVal, topVal, maxVal);
The distribution is defined by:
- a minimum and a maximum value
- a "top" value, with the highest probability.
The distribution is defined with zero probability at minVal-1 and maxVal+1, and with highest probability at topVal. Hence every value in the range (including the maximum and minimum values) have a non-zero probability to be included, whatever topValue is.
The output is a random integer.
randomMatrix = TRIRND(minVal, topVal, maxVal, nrow, ncolumns)
returns a (nrow x ncolumns) matrix of random integers.
NOTES:
* This is a numeric approximation, so use with care in "serious" statistical applications!
* Two different algorithms are implemented. One is efficient for large number of random points within a small range (maxVal-minVal), while the other is efficient for large range for reasonable number of points. For large ranges, there is a O(n^2) relation with regard to the product of range*number_of_points. When this product reach about a billion, the runtime reach several minutes.
* To inspect the resulting distribution, plot a histogram of the resulting random numbers, e.g. "hist(trirnd(1,87,100,10000,1),100)".
Written by L.Cavin, 20.10.2004, (c) CSE & ETHZ
This code is free to use and modify for non-commercial purposes.
Cite As
Laurent Cavin (2026). trirnd (https://www.mathworks.com/matlabcentral/fileexchange/3920-trirnd), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- AI and Statistics > Statistics and Machine Learning Toolbox > Probability Distributions and Hypothesis Tests > Continuous Distributions > Uniform Distribution (Continuous) >
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 | The old algorithm was not efficient for generating random number in a large interval. A second algorithm has been added for covering such cases. |
