syms — Declare scalar symbolic variables in the active workspace.
syms supports MATLAB command syntax such as syms x h, symbolic function declarations such as syms Y(X), and string function syntax such as syms('x') by declaring each named symbol in the caller workspace before later expressions are resolved.
Syntax
syms name ...Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
name | StringScalar | Variadic | — | Symbol names and optional assumption keywords. |
Returns
| Name | Type | Description |
|---|---|---|
ans | Any | Empty return value for command declarations. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:syms:EmptyDeclaration | No symbol names were supplied. | syms: expected at least one symbolic variable name |
RunMat:syms:InvalidName | A declaration token is not a valid MATLAB identifier or assumption keyword. | syms: invalid symbolic variable name |
RunMat:syms:WorkspaceUnavailable | The active runtime cannot assign to the caller workspace. | syms: workspace assignment unavailable |
How syms works
- Command syntax is supported for identifiers, for example
syms x h; function syntax supports literal text names, for examplesyms('x'). - Declared identifiers are assigned scalar symbolic variables of the same name in the active workspace.
- Symbolic function declarations such as
syms Y(X)assignXas a symbolic variable andYas a symbolic function expression. Calls such asY(0)then produce symbolic applications rather than numeric indexing. - Common assumption tokens after the first declaration, such as
real,positive, andinteger, are accepted and ignored by the current scalar symbolic core. symsis a sink builtin: it does not print or return a useful value when called as a statement.
Examples
Declare two symbolic variables
syms x hUse declared variables in a symbolic expression
syms x
f = sin(x)/xDeclare and apply a symbolic function
syms Y(X)
cond = Y(0) == 0
dydx = diff(Y, X)Using syms with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how syms changes the result.
Run a small syms example, explain the result, then change one input and compare the output.
FAQ
Are symbolic assumptions enforced?⌄
Assumption tokens are parsed for MATLAB command compatibility, but the current scalar symbolic evaluator treats expressions as real-valued and does not maintain an assumption database.
Related Math functions
Elementwise
abs · angle · complex · conj · double · exp · expm1 · factorial · gamma · heaviside · hypot · imag · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · sign · single · sqrt · times
Trigonometry
acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · deg2rad · rad2deg · sin · sind · sinh · tan · tand · tanh
Reduction
all · any · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · mean · median · min · nnz · prod · std · sum · trapz · var
Structure
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how syms is executed, line by line, in Rust.
- View the source for syms 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.