Numeric to Ordinal-String

Version 2.2.1 (5.46 KB) by Stephen23
Convert numeric values to a string array of integers with ordinal suffixes. Fully vectorized!
861 Downloads
Updated 3 Feb 2024

View License

Convert a numeric array into a string array of the rounded values with ordinal suffixes, e.g. 1 => "1st".
Similar to MATLAB's IPTNUM2ORDINAL (image toolbox) and NUM2ORDINAL (mapping toolbox) and other files available on FEX, except that NUM2ORD:
  • accepts a numeric array of any size,
  • accepts a numeric array of any class (floating point, INTx or UINTx),
  • returns a string array (not a character array!),
  • is fully vectorized (no loops or ARRAYFUN calls are used or required),
  • provides the correct ordinal suffixes for numeric values ending in 11, 12, or 13.
Character Output
For MATLAB versions prior to R2017a please download version 1.5.2 (with character array output).
Examples
>> num2ord(1)
ans = "1st"
>> num2ord(1:6)
ans = ["1st","2nd","3rd","4th","5th","6th"]
>> [str,sfx] = num2ord([1;11;111;1111])
str = ["1st";"11th";"111th";"1111th"]
sfx = [ "st"; "th"; "th"; "th"]
>> num2ord(intmax('int64')-4)
ans = "9223372036854775803rd"
>> num2ord([-1,-0,0;-Inf,NaN,Inf])
ans = ["-1th","-0th","0th";"-Infth","NaNth","Infth"]

Cite As

Stephen23 (2024). Numeric to Ordinal-String (https://www.mathworks.com/matlabcentral/fileexchange/42833-numeric-to-ordinal-string), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010b
Compatible with R2017a and later releases
Platform Compatibility
Windows macOS Linux
Categories
Find more on Characters and Strings in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
2.2.1

* Add more floating point testcases.

2.2.0

* Add 2nd output, with just the suffixes.
* Remove the optional 2nd input.

2.1.3

* Add testcases.

2.1.2

* Update description.

2.1.1

* Update description.

2.1.0

* Add test cases.
* More robust input class handling.

2.0.4

* Minor edits to Mfile help.

2.0.3

* Include test function.
* Improve examples.

2.0.2

* Correct sreenshot

2.0.1

* Correct screenshot.

2.0.0

* Change to string array output.
* Rename function NUM2ORDINAL -> NUM2ORD.

1.5.2

* Add error IDs.

1.5.1

* Added HTML documentation. Function unchanged.

1.5.0.0

* Improve documentation.

1.4.0.0

Added Acknowledgements

1.3.0.0

- Fix minor bug with int* and uint*.

1.2.0.0

- Improve function description, add acknowledgements.

1.1.0.0

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

1.0.0.0