ordinal — Create an ordinal categorical array object.
ordinal(X) creates an ordered compatibility object from the sorted unique levels of X. Labels, explicit levels, and numeric bin edges follow the public ordinal argument order.
Syntax
B = tabularBuiltin(args...)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
args | Any | Variadic | — | Input values and name-value options. |
Returns
| Name | Type | Description |
|---|---|---|
out | Any | Result value. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:table:InvalidArgument | Arguments or table metadata are invalid. | table: invalid argument |
RunMat:table:InvalidIndex | Table indexing is invalid. | table: invalid index |
RunMat:table:InvalidVariable | A table variable name or value is invalid. | table: invalid variable |
RunMat:readtable:IOError | readtable cannot open or read the requested file. | readtable: file read failed |
RunMat:readtable:UnsupportedFileType | readtable receives a file type outside the text or spreadsheet import backends. | readtable: unsupported file type |
How ordinal works
- String, char, cellstr, numeric, and logical inputs are accepted through the same label conversion path as
categorical. ordinal(X)derives sorted unique levels from non-missing values and creates default labels.ordinal(X, labels)assigns the supplied text labels to the sorted unique levels; duplicate labels merge levels.ordinal(X, labels, levels)uses the explicit comparable level vector and marks source values absent from it as undefined.ordinal(X, labels, [], edges)bins numeric source values into left-closed, right-open intervals, with the final edge included in the last bin.- Integer source values, explicit levels, and edges use exact native comparison across all eight classes. Default numeric display labels retain the established five-significant-digit formatting and collision rejection.
- The returned object has class
categorical, stores one-based category codes, and has itsOrdinalmetadata flag set to true. - Equality and relational operators compare category order; categorical-to-categorical comparisons require matching category lists.
minandmaxreduce ordinal categorical arrays by category order and return categorical results; undefined elements follow the numericNaNbehavior ofincludenanandomitnan, and multi-output forms return numeric indices.
Example
Create an ordered categorical array
O = ordinal({'medium'; 'low'}, {'low','medium','high'})Expected output:
O = categorical objectUsing ordinal with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how ordinal changes the result.
Run a small ordinal example, explain the result, then change one input and compare the output.
FAQ
How is ordinal different from categorical?⌄
ordinal always sets the categorical Ordinal flag to true, so category order is meaningful for compatibility code that checks ordinal categorical metadata.
Related Table functions
array2table · array2timetable · categorical · cell2table · dictionary · groupsummary · head · height · iscategorical · isordinal · istable · istimetable · pivot · rowfilter · struct2table · table · table2array · table2cell · table2struct · table2timetable · timerange · timetable · timetable2table · uitable · vartype · width
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how ordinal is executed, line by line, in Rust.
- View the source for ordinal in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.