RunMat
  • Pricing
RunMat
GitHub
GitHub
DownloadSign InTry in Browser
DesktopRuntimeServer
RunMat

Run math blazing fast

GitHubX (Twitter)LinkedIn

Company

  • About
  • Pricing
  • Contact

Explore

  • RunMat for academia
  • RunMat vs MATLAB Online
  • Benchmarks

Get product updates and release notes from the RunMat team.

© 2026 Dystr · Made withfor the scientific community.

RunMat™ is a registered trademark of Dystr, Inc. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.

LicensePrivacy
/
See all docs
Builtin Reference
    • array2table
    • array2timetable
    • categorical
    • cell2table
    • dictionary
    • groupsummary
    • head
    • height
    • iscategorical
    • isordinal
    • istable
    • istimetable
    • ordinal
    • pivot
    • rowfilter
    • struct2table
    • table
    • table2array
    • table2cell
    • table2struct
    • table2timetable
    • timerange
    • timetable
    • timetable2table
    • uitable
    • vartype
    • width

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

NameTypeRequiredDefaultDescription
argsAnyVariadic—Input values and name-value options.

Returns

NameTypeDescription
outAnyResult value.

Errors

IdentifierWhenMessage
RunMat:table:InvalidArgumentArguments or table metadata are invalid.table: invalid argument
RunMat:table:InvalidIndexTable indexing is invalid.table: invalid index
RunMat:table:InvalidVariableA table variable name or value is invalid.table: invalid variable
RunMat:readtable:IOErrorreadtable cannot open or read the requested file.readtable: file read failed
RunMat:readtable:UnsupportedFileTypereadtable 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 valueset entries.
  • categorical(A, valueset) requires valueset to have the same class as A, uses the supplied values as the category order, and marks unmatched labels as missing.
  • categorical(A, valueset, catnames) maps source values through unique valueset entries and stores the corresponding category names from catnames; repeated category names deliberately merge distinct source values.
  • Missing source values become undefined unless a corresponding missing valueset entry 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, and max by 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 object

Using 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.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.

Download RunMatOpen Sandbox
On this page
  • Syntax
  • Inputs
  • Returns
  • Errors
  • How categorical works
  • Example
  • Create categories
  • Using categorical with coding agents
  • Related Table functions
  • Open-source implementation
  • About RunMat