Matlab Use Experiment Manager
MathWorksOfficialCreated by MathWorks
- Skill
- Tool integration
- Automation and integrations
- BSD-2-Clause
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Experiment Manager Assistant enables users to create, modify, and manage experiments within the MATLAB Experiment Manager app through code-driven workflows. It bridges the gap between script-based experiment definition and the graphical user interface, ensuring that changes to experiment parameters, strategies, or project structures are reflected in the Experiment Manager UI in real-time without requiring application restarts.
What it does
- Generates experiment functions from user code or problem descriptions.
- Synchronizes experiment modifications directly with the Experiment Manager UI.
- Supports creation of general-purpose, built-in training, and custom training experiments.
- Facilitates parameter sweeps and strategy configuration.
- Provides lifecycle management including adding, deleting, renaming, and duplicating experiments.
- Integrates with MATLAB's internal API to maintain state consistency.
When to use it
- When you need to create an experiment from existing MATLAB code or a specific problem description.
- When you want to perform parameter sweeps or change experiment strategies programmatically.
- When you need to add, remove, or rename experiments within an active Experiment Manager session.
- When you want to ensure your code-based experiment definitions remain in sync with the visual interface.
Advantages
- Eliminates manual UI configuration for repetitive experiment setup tasks.
- Maintains live synchronization between code definitions and the Experiment Manager browser.
- Supports complex experiment types including Bayesian Optimization and custom training loops.
- Reduces errors by programmatically validating experiment structures and function signatures.
Usage examples
- “Create a new experiment for my parameter sweep using these ranges.”
- The agent analyzes the provided parameters, generates the necessary experiment function, and updates the Experiment Manager UI to reflect the new experiment configuration.
- “Rename my current experiment to 'Optimization_Run_01' and update the learning rate parameter.”
- The agent renames the experiment in the file system and the UI tree, while simultaneously updating the parameter value within the experiment definition.
Install
3 of its files are not mirrored here, so install it from its source:
https://github.com/matlab/matlab-agentic-toolkit/tree/2a7f215e965597acf6ed495beb9e7b8aff45a3be/skills-catalog/ai-and-statistics/matlab-use-experiment-manager
Documentation by MathWorks
Experiment Manager Assistant
Create experiments from user code or problem descriptions AND keep the Experiment Manager (EM) UI in sync — adding/deleting/editing experiments updates the browser tree and editor live, without restarting EM.
When to Use
Use this skill when the user wants to manage an experiment in MATLAB Experiment Manager: create an experiment from a script or description, sweep parameters, add/delete/edit experiments, rename or duplicate an experiment, or ask about an experiment's strategy, parameters, or values — and have any change reflected live in the EM UI.
When NOT to Use
Do not use this skill for requests that are not about managing an Experiment Manager experiment. Hand off instead:
Train, design, or build a neural network →
matlab-train-network.Debug, refactor, or review plain MATLAB code with no experiment →
matlab-debug-code,matlab-modernize-code, ormatlab-review-code.Build an app, dashboard, or GUI from scratch →
matlab-build-app.Make a live script or report →
matlab-create-live-script.Run, monitor, analyze, compare, or export experiment results — this skill provides UI instructions only; it does not perform these itself.
Setup
When this skill is invoked, add the skill's scripts folder to the MATLAB path so that
manageExperimentHelpers is available. Run this via the MATLAB MCP evaluate_matlab_code tool:
addpath('<skill-base-directory>/scripts');This skill manages experiments inside the existing MATLAB Experiment Manager app. It does
NOT design or build new MATLAB apps or GUIs — to build an app, dashboard, or interactive tool
from scratch, use matlab-build-app.
How to use this skill
Always read common.md first. It holds the setup, the shared General Principles, the Modification Flow (Steps 1–5), dirty-state handling, frontend support detection, the EM state model, the API reference, and the validation rules that every operation depends on.
Then open the reference for the specific task the user is asking for.
Tasks
Pick the one operation that matches the request:
| # | Task | Reference |
|---|---|---|
| 1 | Create — from code or description, generate function, open in EM | create.md |
| 2 | Load Project — open project in EM, list experiments, offer actions | load-project.md |
| 3 | Update — modify parameters, strategy, functions, supporting files | update.md |
| 4 | Delete — remove experiment tab, results, tree entry, and file | delete.md |
| 5 | Rename — update name, tree label, and tab title | rename.md |
| 6 | Duplicate — copy with a custom name | duplicate.md |
Two buckets:
Project Management — Load Project, Create
Experiment Management — Update, Rename, Duplicate, Delete
For querying Experiment Manager UI state (answering questions about strategy, parameters, or values), see the Query Experiment State section in common.md.
Copyright 2026 The MathWorks, Inc.
Files
- ATTRIBUTION.mdAdded by AutoGineer1.0 KiB
- LICENSELicence file added by AutoGineer1.4 KiB
- SKILL.md3.7 KiB
- manifest.yaml521 B
- references/common.md22.6 KiB
- references/create.md15.4 KiB
- references/delete.md2.3 KiB
- references/duplicate.md2.6 KiB
- references/load-project.md700 B
- references/rename.md2.6 KiB
- references/update.md14.4 KiB
- scripts/+experiments/+internal/AgentFrontendBridge.p(opens on GitHub)Not mirrored: opens on GitHub963 B
- scripts/+experiments/+internal/AppController.p(opens on GitHub)Not mirrored: opens on GitHub299 B
- scripts/manageExperimentHelpers.p(opens on GitHub)Not mirrored: opens on GitHub2.9 KiB
references/duplicate.md
Operation: Duplicate Experiment
Shared rules, setup, the Modification Flow, validation, and API are in common.md. Read it first.
Copy an experiment under a custom name, then sync the tree and open the copy. The copy gets
its own function files so it is fully independent of the original — editing the copy's
functions never affects the source. Both the main experiment function and the
initialization function (if the experiment has one) are copied: the main function is named
after the new experiment, the init function is named <newName>_init, and both references
are repointed in the copy.
Before cloning: Check the name doesn't conflict. If it exists, ask about a suffix.
No confirmation needed.
clear classes
dupResult = manageExperimentHelpers.duplicate('<projectPath>', '<sourceExperiment>', 'Copy_of_<sourceExperiment>'); disp(dupResult);
syncResult = experiments.internal.AppController.syncTree(); disp(syncResult);
result = experiments.internal.AppController.refreshOrOpenExperiment(dupResult.path); disp(result);duplicate copies the source's function file(s) to the copy's names and repoints the copy's
references. It does this for the main experiment function and, if present, the
initialization function. Each copy carries its own result fields — main:
functionFile / functionShared / manualFunctionRename; init: initFunctionFile /
initFunctionShared / initManualFunctionRename (all init fields are empty when the
experiment has no initialization function). Handle each the same way:
manualFunctionRename(orinitManualFunctionRename) is non-empty — that source function was a live script (.mlx). The file was copied so the copy runs correctly, but the skill cannot rewrite the function name inside a.mlx(that would corrupt it). Relay this instruction to the user in plain language: open the copied live script in the Live Editor and change the internalfunctionline to match the new name. It is optional — the copy runs either way (MATLAB dispatches by file name).functionShared(orinitFunctionShared) istrue— no function file named after that source function was found on disk (it is named independently or lives elsewhere), so nothing was copied and the copy shares the source's function. If the user needs an independent function, ask how to proceed (e.g. point the copy at a new function you write).Otherwise (
.msource) — the copy has its own<newName>.m/<newName>_init.mwith the signature already rewritten; nothing further is needed.
Copyright 2026 The MathWorks, Inc.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- MathWorks
- Publisher
- MathWorks (Official)
- Source
- matlab/matlab-agentic-toolkit · skills-catalog/ai-and-statistics/matlab-use-experiment-manager · commit 2a7f215
- Licence
- BSD 2-Clause License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by MathWorks.
Get it from the source
3 of this skill’s files are not mirrored here, so there is no ZIP. Get the complete skill from its source: matlab/matlab-agentic-toolkit