View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Numeric to Ordinal-String

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

Be the first to rate this file! 12 Downloads (last 30 days) File Size: 2.22 KB File ID: #42833 Version: 1.5
image thumbnail

Numeric to Ordinal-String

by

 

25 Jul 2013 (Updated )

Convert numeric values to a character array of integers with ordinal suffixes. Fully vectorized!

| Watch this File

File Information
Description

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.

Acknowledgements

Number To Ordinal String Converter, Ordnumstr, Number To Scientific Prefix, Customizable Natural Order Sort, Number To Words, and Words To Number inspired this file.

This file inspired Number To Myriad, Interactive Regular Expression Maker, Number To Words, and Words To Number.

Required Products MATLAB
MATLAB release MATLAB 7.11 (R2010b)
MATLAB Search Path
/
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
17 Mar 2014 1.1

- Fix minor bugs with -0, int* & uint* handling.

15 Apr 2014 1.2

- Improve function description, add acknowledgements.

15 Apr 2014 1.3

- Fix minor bug with int* and uint*.

18 Apr 2014 1.4

Added Acknowledgements

26 Jun 2016 1.5

* Improve documentation.

Contact us