onehotencode — Encode class labels as one-hot vectors.

onehotencode(A,featureDim) expands labels in A into one-hot vectors along featureDim.

Syntax

B = onehotencode(A, featureDim)
B = onehotencode(A, featureDim, typename)
B = onehotencode(A, featureDim, Name, Value)

Inputs

NameTypeRequiredDefaultDescription
AAnyYesInput labels to encode.
featureDimIntegerScalarYesDimension containing or receiving one-hot feature vectors.
typenameStringScalarNoRequested output type.
optionsAnyVariadicName-value options such as ClassNames or OutputType.

Returns

NameTypeDescription
BAnyOne-hot encoded array.

Errors

IdentifierWhenMessage
RunMat:onehotencode:InvalidArgumentInputs, dimensions, classes, output types, or options are malformed.encoding: invalid argument
RunMat:onehotencode:InternalInternal conversion or allocation fails.encoding: internal error

How onehotencode works

  • featureDim must identify a singleton dimension in A; dimensions beyond ndims(A) are padded with singleton dimensions.
  • Categorical inputs infer classes from the full category order, including categories not observed in the input values.
  • Noncategorical inputs require ClassNames; class names must be unique and match the input label type.
  • OutputType supports double, single, and logical; single is represented with RunMat's numeric tensor storage.
  • Missing labels and labels not listed in ClassNames encode as all-NaN feature vectors for numeric output.
  • Logical output cannot represent missing labels or labels excluded by ClassNames and raises an error in those cases.

Example

Encode string labels along columns

B = onehotencode(["red";"blue";"red"], 2, 'ClassNames', ["blue";"red"], 'OutputType', 'logical')

Expected output:

B is a 3-by-2 logical array.

Using onehotencode with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how onehotencode changes the result.

Run a small onehotencode example, explain the result, then change one input and compare the output.

FAQ

Can I control the class order?

Yes. Supply the ClassNames name-value option for noncategorical inputs, or use the category order of a categorical input.

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how onehotencode is executed, line by line, in Rust.

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.