categorical — Create a categorical array object.
categorical(A) maps input labels to integer category codes and stores category labels in object metadata.
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 categorical works
- String, char, cellstr, numeric, and logical inputs are supported; numeric input includes all eight integer classes.
categorical(A)derives sorted unique categories from non-missing labels, and numeric default names are rounded to five significant figures; values too close to retain unique names reject.- Leading and trailing spaces are removed from string and character-vector input values and from textual
valuesetentries. categorical(A, valueset)requiresvaluesetto have the same class asA, uses the supplied values as the category order, and marks unmatched labels as missing.categorical(A, valueset, catnames)maps source values through uniquevaluesetentries and stores the corresponding category names fromcatnames; repeated category names deliberately merge distinct source values.- Missing source values become undefined unless a corresponding missing
valuesetentry and nonmissing category name explicitly maps them. "Ordinal"and"Protected"accept logical or numeric scalar zero or one, including all eight integer classes; ordinal categoricals are always protected. Those option words remain positional labels when not followed by a valid flag.- Categorical-to-categorical comparisons require matching category lists.
- Ordinal categorical arrays support equality, relational comparisons,
min, andmaxby category order. - Use
ordinal(...)as a compatibility constructor for categoricals whose category order is meaningful.
Example
Create categories
C = categorical({'red'; 'blue'; 'red'})Expected output:
C = categorical objectUsing categorical with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how categorical changes the result.
Run a small categorical example, explain the result, then change one input and compare the output.
Related Table functions
array2table · array2timetable · cell2table · dictionary · groupsummary · head · height · iscategorical · isordinal · istable · istimetable · ordinal · 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 categorical is executed, line by line, in Rust.
- View the source for categorical 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.