Makes an ordinal numeral string from a number, e.g. 3 becomes 3rd.
ORDNUMSTR(NUMBER) accepts a floating point number and appends a suitable suffix to form the ordinal numeral for the input (in English).
ORDNUMSTR(NUMBER, 0) simply returns the suffix.
The correct suffix in the case of non-integers is likely to stir up as much heated debate as 'what is best: emacs or vi?'. This function takes the last digit as the suffix generator, so that 81.3 becomes 81.3rd. The alternative would be to use the last digit before the decimal place to give 81.3st, but in my mind "threest" doesn't sound good. If you prefer the latter, then replace line 43 with line 44 and line 58 with line 59. Linguistic pendants may also note that in the case of non-integers, the numbers aren't really ordinal.
Update: Integers ending 11, 12 or 13 are now correctly given a 'th' suffix.
Richie Cotton (2023). ORDNUMSTR (https://www.mathworks.com/matlabcentral/fileexchange/20851-ordnumstr), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired by: Number to Ordinal String Converter
Inspired: Numeric to Ordinal-String
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Bug fix: Input of integer ending 11, 12 or 13 now (really!) correctly handled.