RunMat
GitHub

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)
  • sys must be a SISO tf object.
  • tFinal is a positive finite scalar final time.
  • t is a finite, nonnegative, nondecreasing numeric time vector.

How step works

  • Supports SISO tf objects with real coefficients.
  • Returns the response y as 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 Ts sample 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) = 5

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

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.

db · impulse · tf

Open-source implementation

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

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.

Getting started · Benchmarks · Pricing

Try RunMat for free

Write code or describe what you want to compute. The sandbox is free, no account required.