> Synthesize new waveforms from scratch for Simulink inports using createInputDataset. Use ONLY when the user asks to generate, create, or synthesize signals (step, ramp, sine, chirp, pulse, noise) to populate a Dataset for External Inputs or Signal Editor. Covers timeseries and timetable formats with correct data type, interpolation, units, and dimensions. Also covers function-call and trigger inport timing setup. Do NOT use when the user wants to load, import, or read existing data from files (MAT, CSV, spreadsheet) — even if that data will be used as model input. Do NOT use for running simulations or plotting outputs.
npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill authoring-simulink-inputs
Create populated input signal datasets for Simulink models using createInputDataset as the scaffold, then populating with meaningful waveforms while preserving all signal metadata.
createInputDataset with meaningful signal datasimulating-simulink-models instead. This skill only creates input data; it never runs sim() or produces plots.This skill produces:
ds) — populated Simulink.SimulationData.Dataset in the base workspace, ready for simulationTo simulate with the Dataset, follow the simulating-simulink-models skill workflow (SimulationInput → setExternalInput → sim).
createInputDataset — call it exactly once — never build a Dataset from scratch. Call createInputDataset once per model (it triggers update diagram). For multiple datasets, clone the returned scaffold in a loop rather than calling createInputDataset againorigEl.DataInfo.Interpolation and origEl.DataInfo.Units. For timetables, copy origEl.Properties.VariableContinuity. Omitting these is a bugds{k} = ts. For timetable: ds = ds.setElement(k, tt, origEl.Properties.Description) — never use addElementcast(data, 'like', origEl.Data) to match any scaffold type (double, single, integer, fixed-point). For boolean inports use true(size(t)) directlyInterpolate property — preserve it unless the signal nature demands otherwisesimIn/simOut if simulating). All intermediate variables (t, dt, origEl, ts, signalData, k) must stay inside function scopeclear, clearvars, clear all, or bdclose all. The user may have existing variables, models, or figures open. Only add to the workspace, never remove from itDetermine your entry point. Do not always start at step 1. Assess what the user already has:
| User's current state | Start at |
|---------------------|----------|
| No existing Dataset or script — starting fresh | Step 1 |
| Has a Dataset variable but it's empty/scaffold (all zeros or placeholder data) | Step 2 |
| Has a Dataset with some signals populated but needs fixes (wrong shape, dtype, interpolation) | Step 2 — inspect the broken element, fix in place |
| Has a working script but wants additional scenarios or signals added | Step 2 or "Creating Multiple Datasets" |
| Has a complete Dataset but simulation fails | Diagnose the error first — often a metadata mismatch (interpolation, dtype, units) fixable in Step 2 |
A scaffold is the Dataset returned by createInputDataset. It contains one element per inport, pre-filled with correct metadata (data type, interpolation method, units, signal dimensions) but only placeholder time samples (typically 2 zero-valued rows). The workflow replaces this placeholder data with meaningful waveforms while preserving the metadata.
All generation code lives in a local function. The caller invokes the function and receives the populated Dataset:
ds = buildInputs('modelName');
function ds = buildInputs(mdl)
ds = createInputDataset(mdl);
% — or timetable format —
% ds = createInputDataset(mdl, 'DatasetSignalFormat', 'timetable');
stopTime = str2double(get_param(mdl, 'StopTime'));
dt = 0.01;
t = (0:dt:stopTime)';
% ... populate elements (Step 2) ...
end
If createInputDataset fails (model cannot compile), use model_read to inspect the model's inport blocks and ask the user for any type/dimension info that cannot be determined from the model structure.
Replace placeholder scaffold data with meaningful signal waveforms while preserving metadata. For each element:
origEl = ds{k})cast(data, 'like', origEl.Data) — works for all types including fixed-pointDataInfo.Interpolation and DataInfo.Units from origEl (timeseries) or VariableContinuity from origEl (timetable)ds{k} = ts (timeseries) or ds = ds.setElement(k, tt, origEl.Properties.Description) (timetable)See references/signal-patterns.md — "Dataset Assembly" sections — for the complete code patterns.
Call createInputDataset once, then clone the scaffold in a loop inside a function. See references/dataset-patterns.md — "Creating Multiple Datasets" section — for the complete pattern.
If the model has bus signal inports, see the "Bus Signal Inports" section in references/dataset-patterns.md.
If the model has function-call inports, see the "Function-Call Inports" section in references/dataset-patterns.md.
See references/signal-patterns.md for waveform generation code (sine, step, ramp, chirp, pulse, noise, constant, enum).
| Signal nature | timeseries | timetable |
|--------------|-----------|-----------|
| Continuous (sine, ramp, chirp) | tsdata.interpolation('linear') | "continuous" |
| Discrete (step, pulse, boolean) | tsdata.interpolation('zoh') | "step" |
| Mistake | Why It's Wrong | Correct Approach |
|---------|---------------|-----------------|
| Using ones(size(t)) for boolean enable | Creates double; simulation fails with type mismatch | Use true(size(t)) |
| Ignoring struct fields in bus scaffold | Missing or incorrectly typed bus element causes simulation error | Populate every field in the struct, preserving each field's metadata |
| Treating scaffold data rows as signal width | Scaffold [2 1] data means 2 time samples of a scalar, not a 2-element vector | Use size(origEl.Data, 2) for signal width — rows are placeholder time samples |
| Enum data fails with "turn off interpolation" | Simulink requires Interpolate='off' on inport blocks receiving enum data — even with zoh set on the timeseries | This is a model fix, not a data fix. Use simIn.setBlockParameter(portPath, 'Interpolate', 'off') before simulating |
----
Copyright 2026 The MathWorks, Inc.
----
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take matlab/authoring-simulink-inputs from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.