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
    • append
    • deblank
    • erase
    • eraseBetween
    • erasePunctuation
    • eraseURLs
    • extractAfter
    • extractBefore
    • extractBetween
    • insertAfter
    • insertBefore
    • join
    • lower
    • pad
    • replace
    • replaceBetween
    • reverse
    • split
    • splitlines
    • strcat
    • strip
    • strjoin
    • strjust
    • strrep
    • strsplit
    • strtrim
    • upper

strcat — Concatenate text inputs element-wise with MATLAB-compatible implicit expansion and trailing-space handling.

strcat concatenates text inputs element-wise across compatible array sizes. It supports MATLAB-compatible string, char, and cellstr container forms with implicit expansion semantics.

Syntax

out = strcat(str1, str2, ...)

Inputs

NameTypeRequiredDefaultDescription
str1AnyYes—First text input (string/char/cell).
str2AnyVariadic—Additional text inputs to concatenate element-wise.

Returns

NameTypeDescription
outAnyConcatenated text preserving strcat output container semantics.

Errors

IdentifierWhenMessage
RunMat:strcat:NotEnoughInputsNo arguments are supplied.strcat: not enough input arguments
RunMat:strcat:InvalidInputAn input is not a string, character array, or cell array of text scalars.strcat: inputs must be strings, character arrays, or cell arrays of character vectors
RunMat:strcat:CellElementA cell array contains a non-text element or non-row char array element.strcat: cell array elements must be character vectors or string scalars
RunMat:strcat:SizeMismatchInput shapes are not broadcast-compatible.strcat: array sizes are not compatible for broadcasting
RunMat:strcat:InternalErrorInternal output container construction failed.strcat: internal error

How strcat works

  • Inputs are concatenated element-wise. Scalars expand across arrays of matching dimensions using MATLAB's implicit expansion rules.
  • When at least one input is a string array (or string scalar), the result is a string array. <missing> values propagate, so any missing operand yields a missing result for that element.
  • When no string arrays are present but any input is a cell array of character vectors, the result is a cell array whose elements are character vectors.
  • Otherwise, the result is a character array. For character inputs, strcat removes trailing space characters from each operand before concatenating.
  • Cell array elements must be character vectors (or string scalars). Mixing cell arrays with unsupported content raises a MATLAB-compatible error.
  • Empty inputs broadcast naturally: an operand with a zero-length dimension yields an empty output after broadcasting.
  • Integer and other numeric arrays are not implicitly formatted as text; use string first when numeric-to-text conversion is intentional.

Does RunMat run strcat on the GPU?

RunMat performs text concatenation on the CPU. Unsupported resident numeric operands reject before provider lookup rather than being gathered and implicitly formatted.

GPU memory and residency

No. strcat accepts host text and returns host text. Provider-resident numeric values are unsupported text operands and reject before access.

Examples

Concatenate string scalars element-wise

greeting = strcat("Run", "Mat")

Expected output:

greeting = "RunMat"

Concatenate a string scalar with a string array

names = ["VM", "JIT", "Accelerate"];
tagged = strcat("runmat-", names)

Expected output:

tagged = 1×3 string
    "runmat-VM"    "runmat-JIT"    "runmat-Accelerate"

Concatenate character arrays while trimming trailing spaces

A = char("GPU ", "Planner");
B = char("Accel", " Stage ");
result = strcat(A, B)

Expected output:

result =

  2×11 char array

    'GPUAccel'
    'PlannerStage'

Concatenate cell arrays of character vectors

C = {'Run ', 'Plan '; 'Fuse ', 'Cache '};
suffix = {'Mat', 'Ops'; 'Kernels', 'Stats'};
combined = strcat(C, suffix)

Expected output:

combined = 2×2 cell
    {'RunMat'}    {'PlanOps'}
    {'FuseKernels'}    {'CacheStats'}

Propagate missing strings during concatenation

values = [string(missing) "ready"];
out = strcat("job-", values)

Expected output:

out = 1×2 string
    <missing>    "job-ready"

Broadcast a scalar character vector across a character array

labels = char("core", "runtime", "planner");
prefixed = strcat("runmat-", labels)

Expected output:

prefixed =

  3×11 char array

    'runmat-core'
    'runmat-runtime'
    'runmat-planner'

Using strcat with coding agents

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

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

FAQ

Does strcat remove spaces between words?⌄

No. strcat only strips trailing space characters from character inputs before concatenating. Spaces in the middle of a string remain untouched. To insert separators explicitly, concatenate the desired delimiter or use join.

How are missing strings handled?⌄

Missing string scalars (string(missing)) propagate. If any operand is missing for a specific element, the resulting element is <missing>.

What happens when I mix strings and character arrays?⌄

The output is a string array. Character inputs are converted to strings (after trimming trailing spaces) and combined element-wise with the string operands.

Can I concatenate cell arrays with string arrays?⌄

Yes. Inputs are implicitly converted to strings when any operand is a string array, so the result is a string array. Cell array elements must still contain character vectors (or scalar strings).

What if I pass numeric or logical inputs?⌄

strcat only accepts strings, character arrays, character vectors, or cell arrays of character vectors. Passing unsupported types raises a MATLAB-compatible error.

How are empty inputs treated?⌄

Dimensions with length zero propagate through implicit expansion. For example, concatenating with an empty string array returns an empty array with the broadcasted shape.

Related Strings functions

Transform

append · deblank · erase · eraseBetween · erasePunctuation · eraseURLs · extractAfter · extractBefore · extractBetween · insertAfter · insertBefore · join · lower · pad · replace · replaceBetween · reverse · split · splitlines · strip · strjoin · strjust · strrep · strsplit · strtrim · upper

Text Analytics

addDependencyDetails · addEntityDetails · addLemmaDetails · addPartOfSpeechDetails · addSentenceDetails · addTypeDetails · bagOfNgrams · bagOfWords · cosineSimilarity · doc2sequence · encode · extractFileText · extractHTMLText · fastTextWordEmbedding · findElement · getAttribute · htmlTree · ind2word · isVocabularyWord · normalizeWords · readWordEmbedding · removeLongWords · removeShortWords · removeStopWords · removeWords · stopWords · tokenDetails · tokenizedDocument · trainWordEmbedding · vaderSentimentScores · vec2word · word2ind · word2vec · wordEncoding · writeWordEmbedding

Core

blanks · char · compose · convertCharsToStrings · convertContainedStringsToChars · convertStringsToChars · genvarname · int2str · isletter · isspace · isStringScalar · isstrprop · mat2str · native2unicode · newline · num2str · sprintf · sscanf · str2double · str2num · strcmp · strcmpi · string · string.empty · strings · strlength · strncmp · strncmpi · strtok · unicode2native

Search

contains · endsWith · matches · startsWith · strfind

Pattern

digitsPattern · lettersPattern · pattern · regexpPattern · textBoundary · wildcardPattern

Regex

regexp · regexpi · regexprep

Open-source implementation

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

  • View the source for strcat 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 strcat works
  • Does RunMat run strcat on the GPU?
  • GPU memory and residency
  • Examples
  • Concatenate string scalars element-wise
  • Concatenate a string scalar with a string array
  • Concatenate character arrays while trimming trailing spaces
  • Concatenate cell arrays of character vectors
  • Propagate missing strings during concatenation
  • Broadcast a scalar character vector across a character array
  • Using strcat with coding agents
  • FAQ
  • Related Strings functions
  • Transform
  • Text Analytics
  • Core
  • Search
  • Pattern
  • Regex
  • Open-source implementation
  • About RunMat