关于 matlab-export-session-script
该 MATLAB 技能将对话中执行的 MATLAB 代码整理为带注释、可运行的 .m 脚本,并保存到工作目录的 Results 文件夹。适用于希望留存或交付 MATLAB 工作流程脚本的用户。
主要功能
- 01提取对话中执行的 MATLAB 代码
- 02保留重复代码的最终成功版本
- 03按工作流程排序并添加分节
- 04集中参数并保存为 .m 文件
适用场景
- 01将一次 MATLAB 分析整理成脚本
- 02保存设计与可视化工作流程
- 03为 MATLAB 会话生成可运行交付物
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-export-session-script安装后在 Claude Code 中输入/matlab-export-session-script确认已加载。
附带文件manifest.yaml
详细介绍
将会话导出为 MATLAB 脚本
提取当前对话中执行的所有 MATLAB 代码,将其整理成文档完善、可运行的 .m 脚本,并保存到工作目录。
快速参考
| 步骤 | 操作 |
|---|---|
| 1. 扫描 | 按时间顺序遍历助手消息;提取每个已执行的 MATLAB 代码块 |
| 2. 去重 | 对重复代码块仅保留最终成功的版本 |
| 3. 排序 | 按逻辑工作流顺序排列(设置、模型、配置、分析、可视化) |
| 4. 格式化 | 添加 %% 分节标题,并将参数集中到顶部 |
| 5. 保存 | 将脚本写入工作目录下的 Results/<descriptive_name>.m |
适用场景
- 用户说“将本次会话导出为脚本”
- 用户说“根据我们刚才的操作创建脚本”
- 用户说“保存本次对话中的 MATLAB 代码”
- 在任何需要交付成果的 MATLAB 工作流会话结束时
不适用场景
- 从零编写新的 MATLAB 代码——直接编写代码即可
- 导出非 MATLAB 内容(Python、Shell 脚本等)
- 创建 Live Scripts(.mlx)——此技能只生成普通 .m 文件
提取规则
包含
- 所有产生有意义结果的 MATLAB 代码(分析、设计、可视化)
- 变量赋值、函数调用、绘图命令
- 会话中使用的实用函数所需的
addpath调用
排除
- Shell 命令:PowerShell、Bash、操作系统命令、
sbm封装程序 - MCP 工具调用元数据和框架样板代码
- 用于排查问题的探索性单行代码
- 仅供 Agent 向用户反馈信息而使用的
fprintf语句(保留面向用户的语句) - 图窗中的
'Visible','off'——导出的脚本供交互使用
去重
当同一代码块运行多次时(例如,为修复错误而重复运行),仅保留最终成功的版本。不要包含中间的失败尝试或参数修正,而应使用成功运行的值。
脚本整理
1. 扫描对话
按时间顺序遍历所有助手消息。对于每个已执行的 MATLAB 代码块(通过 MCP、-batch 或类似方式),提取 MATLAB 部分并记录:
- 该代码的用途(作为分节注释)
- 是否执行成功,或是否被后续版本取代
- 在工作流中的逻辑位置
2. 按逻辑排序
将提取的代码按自然工作流顺序排列,顺序可能不同于执行顺序:
- 设置(路径、参数、导入)
- 数据加载 / 模型创建
- 配置
- 分析 / 计算
- 可视化 / 结果
3. 按分节格式整理
%% <Title> -- <One-line summary>
% <Multi-line description of what this script does.>
% <Key context: what design, what board, what analysis, etc.>
%
% Required toolboxes: <list only what was actually used>
%% Step 1: <Description>
% <Why this step matters>
<code>
%% Step 2: <Description>
<code>
格式约定
- 使用
%%分节符划分每个逻辑步骤(在 MATLAB Editor 中创建可折叠分节) - 在每个分节前添加一行注释,说明其用途
- 将参数集中到设置分节,不要散布在整个脚本中
- 完全保留变量名,与会话中使用的名称一致
- 在
title()/xlabel()的 TeX 字符串中转义下划线:使用\_而非_
输出
文件命名
根据会话的主要任务确定文件名。使用小写字母和下划线:
openrex_core_rail_dc_analysis.mhairpin_filter_design_2p4ghz.mvia_crosstalk_sweep.m
文件位置
将文件保存到工作目录下的 Results/。如果该文件夹不存在,则创建它。
保存后
告知用户:
- 文件名和路径
- 脚本包含的分节数 / 行数
- 脚本已准备就绪,可在安装所需工具箱的 MATLAB 中运行
常见模式
- 每个会话使用一个脚本 —— 将所有相关工作整合到单个脚本中,即使涉及多次设计迭代也是如此。只有在同一会话中处理互不相关的工作流时,才有必要使用多个脚本。
- 将参数放在顶部 —— 将所有可由用户配置的值(
freq、substrate、尺寸)集中放在设置部分,方便用户修改,无需在脚本中四处查找。 - 批处理时隐藏图窗 —— 如果脚本可能以非交互方式运行,请使用
if ~exist('BATCH_MODE', 'var')条件包裹绘图代码。不过,交互使用时默认显示图窗。 - 路径管理 —— 如果脚本使用文件(Touchstone、板卡文件),请将文件路径放在设置部分顶部的变量中。使用
fullfile()以适配不同平台。切勿硬编码绝对路径。 - 批处理模式标头 —— 对于可能通过
matlab -batch运行的脚本,请在顶部添加:%% Configuration BATCH_MODE = exist('BATCH_MODE', 'var') || ~usejava('desktop'); if ~BATCH_MODE, close all; clc; end - 结果目录 —— 将输出保存到
Results/子文件夹:resultsDir = fullfile(pwd, 'Results'); if ~exist(resultsDir, 'dir'), mkdir(resultsDir); end
注意事项
-
不要包含 shell 命令。 导出的脚本中只能包含 MATLAB 代码。必须删除 PowerShell、Bash 和
sbm封装器调用。如果 shell 步骤必不可少(例如下载文件),请用注释说明前置条件。 -
不要保留失败的迭代版本。 如果修复错误后重新运行了代码块,只应保留最终成功的版本。包含中间失败版本会导致脚本无法运行。
-
不要将参数分散放置。 深藏在分析或绘图部分的硬编码值难以查找和修改。请始终将可由用户配置的参数(
freq、substrate、尺寸、文件路径)提到顶部的设置部分。 -
不要硬编码绝对路径。
C:\Users\viyer\...之类的路径在其他计算机上会失效。请使用fullfile()和相对路径,或将路径变量放在设置部分。 -
不要在图窗中保留
'Visible','off'。 Agent 会话会在非交互式执行时隐藏图窗,但导出的脚本是供交互式使用的。请从figure()调用中删除'Visible','off'参数。 -
转义 TeX 字符串中的下划线。 MATLAB 默认会将
title()、xlabel()、ylabel()和legend()调用中的_解释为下标。请使用\_或设置'Interpreter','none'。
版权所有 2026 The MathWorks, Inc.