step — Compute or plot the step response of a SISO transfer-function model.
step(sys) plots the unit-step response of a SISO transfer-function object created by tf. [y, tOut] = step(sys) returns sampled response data and the time vector. step(sys, tFinal) uses a scalar final time, while step(sys, t) evaluates at an explicit time vector.
Syntax
step(sys)
y = step(sys)
[y, tOut] = step(sys)
[y, tOut] = step(sys, tFinal)
[y, tOut] = step(sys, t)sysmust be a SISOtfobject.tFinalis a positive finite scalar final time.tis a finite, nonnegative, nondecreasing numeric time vector.
How step works
- Supports SISO
tfobjects with real coefficients. - Returns the response
yas a column vector for single-output calls. - Returns
[y, tOut]for two-output calls. - Plots the response for no-output calls.
- Chooses an automatic time vector when no time input is supplied.
- Accepts a positive finite scalar final time.
- Accepts a finite, nonnegative, nondecreasing explicit time vector.
- Discrete-time models use the stored
Tssample time.
GPU memory and residency
step computes on the host from tf metadata and returns host tensors.
Examples
Returning response data for a first-order system
sys = tf(1, [1 1]);
[y, t] = step(sys);Expected output:
y and t are column vectors.Using a scalar final time
sys = tf(1, [1 1]);
[y, t] = step(sys, 5);Expected output:
t(end) = 5Using an explicit time vector
sys = tf(1, [1 1]);
t = 0:0.5:2;
y = step(sys, t);Expected output:
y is sampled at the values in t.Plotting the step response
sys = tf(1, [1 1]);
step(sys);Expected output:
A step-response plot is rendered.How RunMat validates step
step validates object class, coefficient type, properness, sample time, and time-vector inputs before simulation. Unit and integration tests cover first-order response values, scalar final time, explicit vectors, discrete sample-time behavior, multi-output ordering, and VM dispatch.
- Implementation: `crates/runmat-runtime/src/builtins/control/step.rs`
See Correctness & Trust for the full methodology and coverage table.
FAQ
Does step support MIMO models?⌄
Not yet. This implementation starts with SISO transfer-function objects.
Does step support state-space models?⌄
Not yet. The initial implementation supports transfer-function objects produced by tf.
Can transfer-function coefficients be complex?⌄
Not in this first implementation. Complex coefficients return a clear unsupported-input error.
Related Control functions
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how step works, line by line, in Rust.
- View step.rs on GitHub
- Learn how the 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 — faster, on any GPU, with no license required.
- Simulations that took hours now take minutes. RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed.
- Start running code in seconds. Open the browser sandbox or download a single binary. No license server, no IT ticket, no setup.
- A full development environment. GPU-accelerated 2D and 3D plotting, automatic versioning on every save, and a browser IDE you can share with a link.