File Exchange

image thumbnail

Numeric to Ordinal-String

version 1.5.2 (5.25 KB) by Stephen Cobeldick
Convert numeric values to a character array of integers with ordinal suffixes. Fully vectorized!


Updated 09 Jul 2020

View Version History

View License

Convert a numeric scalar/vector/matrix/array into a character array giving the integers and ordinal suffixes of the rounded input element values, for example the value 1 is returned as '1st'.

Similar to MATLAB's IPTNUM2ORDINAL and other files available on FEX, except that this function accepts numeric arrays (not just scalars) of any class (float, int or uint) and is fully vectorized (no loops or ARRAYFUN calls are used or required). The function rounds fractional numeric values to the nearest integer, and provides the correct suffixes for numeric values ending in 11, 12 or 13. The optional second input selects between returning the integer and suffix (default), or just the suffix (fast!).

### Examples ###

>> num2ordinal(1)
ans = '1st'

>> num2ordinal(1:6)
ans = ['1st';'2nd';'3rd';'4th';'5th';'6th']

>> num2ordinal([1,11,111,1111])
ans = [' 1st';' 11th';' 111th';'1111th']

>> num2ordinal(100:113,false)
ans = ['th';'st';'nd';'rd';'th';'th';'th';'th';'th';'th';'th';'th';'th';'th']

>> num2ordinal(intmax('int64')-4)
ans = '9223372036854775803rd'

>> num2ordinal([-0,+0])
ans = ['-0th';' 0th']

>> vals = [-1,-0,0;-Inf,NaN,Inf];
>> reshape(strtrim(cellstr(num2ordinal(vals))),size(vals))
ans = {'-1th','-0th','0th';'-Infth','NaNth','Infth'}

### Note ###

Compared to MATLAB inbuilt functions and several other M-files that are available on MATLAB File Exchange, this file:
- Correctly converts all numeric values ending in 11, 12, or 13.
- Accepts a scalar/array numeric.
- Is fully vectorized.
- Optionally returns only the ordinal suffix (fast!).
- Returns the complete digits for uint and int type numerics.
- Distinguishes between positive and negative zero.

Cite As

Stephen Cobeldick (2021). Numeric to Ordinal-String (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

Pi Ting

Great job, thanks!

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!