Shared signal projects
Keep scripts, data, figures, and run history synchronized across the team.
Learn about shared projectsRunMat is a MATLAB-syntax runtime for engineering analysis. Run filters, FFTs, PSDs, and spectrograms using existing .m scripts and recorded data. Runs in the web browser, Desktop, and CLI.
View other download options.
Live results, not screenshots
An analysis result is only useful if another engineer can see how it was produced. RunMat lets you keep script, measurement data, plot, variables, diagnostics, and run history together while you slice and dice your signal.
RunMat includes Built-ins for file import, transforms, filters, spectral estimates, plots, saving outputs, and more.
Read measurement exports, saved state, structured text, binary samples, and WAV/RF64 audio before plotting or filtering.
Work with datasets, scripts and runs collaboratively in multi-player, GPU-enabled workspaces. See the plots, variables, and diagnostics behind each result.
Keep scripts, data, figures, and run history synchronized across the team.
Learn about shared projectsTrack edits and run outputs, compare earlier states, and restore a previous calculation.
Explore versioning
Open scripts and data from disk, then run them with the CPU and available GPU on your machine.
Open a runnable workspace with the script, sample data, plot, and variables already wired up. Use these examples to get a feel for RunMat.
Import timestamped measurements, check for gaps and missing values, then interpolate the valid data onto a uniform sample grid.
Inspect the detected sample rate, data-quality counts, prepared signal, and correctly scaled single-sided spectrum before using your own export.
data = readmatrix('sensor_log.csv', 'NumHeaderLines', 1);
t_recorded = data(:, 1);
x_recorded = data(:, 2);
nominal_dt = median(diff(t_recorded));
valid_samples = ~isnan(x_recorded);
sample_count = round((t_recorded(end) - t_recorded(1)) / nominal_dt) + 1;
t = linspace(t_recorded(1), t_recorded(end), sample_count)';
x = interp1(t_recorded(valid_samples), x_recorded(valid_samples), t);
N = length(x); Y = fft(x - mean(x));
single_sided_amplitude = abs(Y(1:N/2+1)) / N;
single_sided_amplitude(2:end-1) = 2 * single_sided_amplitude(2:end-1);For the deeper FFT tutorial, read the MATLAB FFT guide.
Design a low-pass Butterworth filter, apply it to a noisy two-tone signal, and inspect both the filtered trace and the filter response.
Use it to check coefficient generation, filter application, response plotting, and workspace variables.
[b, a] = butter(4, 80/(Fs/2), 'low');
y = filter(b, a, x);
[H, f] = freqz(b, a, 512, Fs);
plot(t, x); hold on;
plot(t, y);
plot(f, abs(H));Compare a single-run FFT magnitude with a Welch power spectral density estimate on the same noisy signal.
See how averaged spectral estimation changes the peak and noise-floor view.
N = length(x);
Y = fft(x - sum(x) / length(x));
fFft = Fs*(0:N/2)/N;
pFft = abs(Y(1:N/2+1)) * 2/N;
[pxx, fWelch] = pwelch(x, hamming(256), 128, 512, Fs);
subplot(2, 1, 1);
plot(fFft, pFft);
subplot(2, 1, 2);
plot(fWelch, pxx);Compute a short-time Fourier transform on a signal whose frequency content changes over time.
Keep the time trace, time-frequency view, and generated workspace outputs together.
[s, f, tt, ps] = spectrogram(x, hamming(128), 96, 256, Fs);
power_db = 10 * log10(ps + 1e-12);
subplot(2, 1, 1);
plot(t, x);
subplot(2, 1, 2);
imagesc([tt(1) tt(end)], [f(1) f(end)], power_db);
axis xy;
colorbar;Run projects from CLI for review, benchmarks, CI, batch jobs, and automated tests.
Run projects from CLI for headless validation, agent-assisted analysis, and artifact generation.
Run projects in a Docker container and capture stdout, manifests, workspace state, and figure artifacts.
Invoke RunMat beside Python, C++, Rust, or CI tooling.
Use RunMat in CI to run static analysis and tests on every commit.
Choose RunMat when existing .m scripts need recorded-data inspection, filter tuning, spectrum comparison, artifacts, or repeatable validation. Stay with MATLAB for Simulink, DSP deployment, or visual app workflows.
Frequently asked questions about RunMat for signal processing.
Download RunMat Desktop for full performance, or run in your browser with zero setup.