Makes an ordinal numeral string from a number, e.g. 3 becomes 3rd.
Updated 31 Jul 2008

View License

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.

Cite As

Richie Cotton (2024). ORDNUMSTR (https://www.mathworks.com/matlabcentral/fileexchange/20851-ordnumstr), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Characters and Strings in Help Center and MATLAB Answers

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!
Version Published Release Notes

Bug fix: Input of integer ending 11, 12 or 13 now (really!) correctly handled.