关于 matlab-analyze-data
为需要生成 MATLAB 数据分析代码的用户提供技能,覆盖表格、时间表及数组工作流。它强调使用现代 MATLAB 函数,并要求先查阅相关参考文件。
主要功能
- 01探索表格结构与数据分布
- 02清理缺失值和异常值
- 03转换、筛选与汇总表格数据
- 04处理时间序列及网格数组
- 05按主题查阅参考文件
适用场景
- 01检查数据中的缺失值与重复项
- 02重采样并同步时间序列
- 03按组计算统计量
- 04筛选并归一化表格数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-analyze-data安装后在 Claude Code 中输入/matlab-analyze-data确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manifest.yamlreferences/answering-data-questions.mdarray-and-grid-data.mddata-cleaning.mddata-transformation.mddata-types.mdeventtables.mdexploration.mdgrouping-and-aggregation.mdsmoothing-and-trends.mdtables-and-timetables.md详细介绍
MATLAB 数据分析
使用符合 MATLAB 惯用风格的代码,通过表和时间表执行表格数据分析任务。
适用场景
- 涉及表格数据的任务:探索、清理、转换或汇总表
- 时间序列分析:重采样、同步、趋势检测、平滑
- 回答有关表中数据的问题(前 N 项、筛选、组间比较)
- 数据清理:缺失值、异常值、类型转换、归一化
不适用场景
- 任务没有数据上下文(没有可处理的表、时间表、数组或日期/时间值)
- 主要目标是可视化或绘图,而非数据分析(改用
matlab-build-chart) - 任务纯粹涉及符号数学、仿真或应用构建
- 读取或写入文件——CSV、Excel、Parquet、MAT 文件(改用
matlab-import-export-data) - 数据无法装入内存,或需要外存处理(改用
matlab-choose-big-data-solution) - 存储或检索密码、令牌或 API 密钥(改用
matlab-secure-credentials) - 数据存储在关系数据库中(改用
matlab-use-database或matlab-use-duckdb) - 使用带标签的信号文件构建 ML 训练工作流(改用
matlab-prepare-signal-data) - 在表格数据上训练分类器或比较 ML 模型准确率(改用
matlab-classify-tabular-data) - 为优化有监督 ML 模型而设计或选择特征(改用
matlab-engineer-tabular-features) - 代码迁移或替换已弃用的 API(改用
matlab-modernize-code)
路由:阅读所有相关主题的参考资料
此技能涵盖表格、时间序列和基于数组的数据工作流所需的 MATLAB 核心函数,包括数值数组、传感器矩阵和网格数据。这些函数可原生处理 table、timetable 和数值数组,正确处理缺失数据,并针对性能进行了优化。优先使用此处推荐的现代函数(例如 groupsummary、datetime、fillmissing、smoothdata2),而不是旧版替代方案(例如 accumarray、nanmean、datenum)。只有在用户明确提出要求时才例外。
**以下每个部分都链接到一个参考文件。编写代码前,务必阅读每个相关主题的参考文件。**参考文件包含正确语法、常见陷阱以及可避免静默错误的“避免使用”模式。跳过参考资料可能导致采用已弃用的方法,或遇到已知陷阱。阅读后,在回复顶部注明 Reference files read: [list]。
关键函数 — 可用版本
此技能中的大多数函数在 R2023a 或更早版本中均可用。以下函数需要较新版本:
| 函数 | 起始可用版本 | 用途 |
|---|---|---|
paddata, trimdata, resize | R2023b | 将数组填充、裁剪或调整为目标长度 |
smoothdata2 | R2023b | 在矩形窗口内平滑二维网格数据 |
kde | R2023b | 估计单变量数据的核密度 |
clip | R2024a | 将值限制在某个范围内 |
islocalmax2, islocalmin2 | R2024a | 检测二维网格数据中的局部极值 |
summary(增强版) | R2024b | 支持数组(数值、datetime、duration、逻辑);新增 Statistics、DataVariables、Detail 名称-值参数 |
isapprox | R2024b | 考虑容差的浮点数比较(对计算所得的值应使用此函数,而非 ==) |
isbetween(数值型) | R2024b | 检查元素是否位于数值范围内 |
numunique | R2025a | 统计变量中的不同值数量 |
allbetween | R2025a | 验证所有值是否位于某个范围内 |
allunique | R2025a | 验证所有值是否唯一 |
开始探索数据
当数据已存储在工作区变量中时,请先了解其结构和内容,再编写分析代码。
主题:
- 汇总结构、形状和变量类型
- 评估缺失数据的数量及其位置
- 了解分布(数值四分位数、分类值计数)
- 查找变量之间的相关性和关系
- 检查重复项、唯一键和基数
- 探索时间范围、规律性和时间模式
函数: summary、head、size、jsonencode、anymissing、allfinite、ismissing、groupcounts、numunique、allunique、kde、corrcoef、pivot、unique、isregular、isuniform、retime
阅读: exploration.md
数据类型
使用现代 MATLAB 类型替代旧式类型。现代类型速度更快、可读性更好,也能更好地与表函数配合使用。
主题:
- 日期和时间(解析、运算、时区、提取年/月/日/小时)
- 已用时间和日历偏移量
- 文本数据(比较、搜索、拆分、编辑字符串)
- 分类数据(有序排名、合并/重命名/重新排序类别)
函数: datetime、dateshift、year、month、day、weekday、quarter、hour、timeofday、ymd、hms、hours、days、minutes、seconds、calmonths、caldays、string、matches、contains、startsWith、extractAfter、extractBefore、replace、erase、strip、split、count、categorical、mergecats、renamecats、removecats、reordercats、countcats
阅读: data-types.md
表和时间表
表是存放表格数据的主要容器。当数据带有时间戳、时间向量或已知采样率时,请使用 timetable——它可以启用时间感知操作(自动按间隔调整平滑、填充和重采样)。
主题:
- 创建表并设置其结构(变量与行、元数据、属性)
- 按类型选择变量;点索引与花括号索引、圆括号索引的区别
- 导入后转换变量类型
- 处理非均匀间隔数据(
SamplePoints) - 对时间序列进行重采样、对齐和同步
- 按日期范围或时间容差筛选
- 转换旧式
timeseries对象
函数: table、timetable、table2timetable、vartype、convertvars、retime、synchronize、lag、timerange、withtol、timeseries2timetable、table2array、array2table
事件表
使用 eventtable 为时间表的行添加事件、事件过程或阶段标记或注释(传感器异常、风暴、维护时段、警报)。请勿在时间表本身中添加布尔列、字符串标签或分类状态变量。
主题:
- 根据时间戳和标签创建事件表(瞬时事件或区间事件)
- 将事件附加到时间表
- 按事件属性筛选时间表行
- 从数据模式(峰值、阈值穿越)中提取事件
- 将事件数据写入时间表行,以便导出或分组
- 在绘图中自动叠加事件
函数: eventtable、eventfilter、extractevents、syncevents、withtol、stackedplot
阅读: eventtables.md
数据清理
使用 MATLAB 内置的检测和填充函数处理缺失值与离群值。切勿使用 == 比较缺失值。填充或移除之前,使用 standardizeMissing 转换哨兵值。
主题:
- 检测缺失值(NaN、NaT、缺失字符串、未定义的分类值)
- 将占位值("N/A"、-999、"")转换为标准缺失值
- 填补间隙(插值、向前填充、移动窗口、按类型采用不同策略)
- 限制长间隙的填充范围
- 在聚合(mean、std、min、max)时跳过缺失值——使用正确的调用语法
- 检测、移除或替换离群值
- 检查值是否处于预期范围内;截断值
函数: ismissing、anymissing、standardizeMissing、fillmissing、rmmissing、isoutlier、rmoutliers、filloutliers、isbetween、allbetween、clip
阅读: data-cleaning.md
数据转换
筛选、排序、重塑、归一化、分箱、联接并管理表变量。使用向量化运算和内置函数,而不是遍历行的循环或手动编写 if-else 链。
主题:
- 按条件或取值范围筛选行
- 排序并获取前 N 行或后 N 行
- 跨行或跨变量应用函数
- 重命名、重排、添加、移除、拆分、合并变量
- 转换类型并就地应用变换
- 将连续值分箱为类别
- 归一化、缩放、计算 z 分数
- 在宽格式与长格式之间重塑(透视、堆叠、取消堆叠)
- 根据键变量联接/合并表
函数: sortrows、topkrows、rowfun、varfun、convertvars、renamevars、movevars、addvars、removevars、splitvars、mergevars、discretize、normalize、clip、rescale、isapprox、isbetween、pivot、stack、unstack、rows2vars、innerjoin、outerjoin、join
分组与聚合
groupsummary 是分组统计的首选,而不是 findgroups+accumarray 或手动循环。使用 groupfilter 按组筛选行,使用 grouptransform 按组归一化,使用 pivot 进行交叉制表。
主题:
- 按组计算统计量(mean、sum、std、min、max、自定义统计量)
- 实时分箱(数值边界、按小时/月份/季节划分的时间箱)
- 处理缺失或空组
- 根据组级条件筛选行(例如,组的最小大小)
- 移除各组的离群值
- 在各组内归一化(z 分数、缩放)
- 对计数或聚合值进行交叉制表
函数: groupsummary、groupcounts、groupfilter、grouptransform、pivot、findgroups
阅读: grouping-and-aggregation.md
平滑、趋势与模式
smoothdata 是统一的平滑入口点(不要使用需要 Curve Fitting Toolbox 的 smooth)。使用 detrend 或 trenddecomp 去除/分解趋势,并使用 islocalmax/islocalmin/ischange 检测模式。
主题:
- 平滑含噪数据(移动平均、高斯、Savitzky-Golay、中位数)
- 选择窗口大小(元素数量或带时间戳数据的持续时间)
- 去除线性或多项式趋势
- 分离趋势与季节性(季节性分解)
- 查找峰值、谷值和局部极值
- 检测均值、方差或斜率的突变
- 汇总分布(分箱计数、直方图)
函数: smoothdata、movmean、movmedian、detrend、trenddecomp、islocalmax、islocalmin、ischange、histcounts、histogram
数组和网格数据
当数据是同质数值型,且满足以下任一条件时,请使用数组:数据天然为二维或网格形式、对性能要求较高,或由上游工具提供。对于二维网格,请使用专用的二维函数,不要对行或列循环调用一维函数。
主题:
- 何时保留数组,何时转换为表
- 沿特定维度运算(按行还是按列)
- 使用 std、var、movstd、movvar 时维度参数的常见陷阱
- 处理数组计算中的 NaN(不会自动处理)
- 移动窗口统计和累积统计
- 将数组填充、裁剪或调整大小至目标长度
- 对网格进行二维空间平滑、间隙填补和峰值检测
- 使用分组向量执行分组运算
函数: smoothdata2、fillmissing2、islocalmax2、islocalmin2、paddata、trimdata、resize、mink、maxk、bounds、rms、prctile、quantile、iqr、cumsum、cummax、cummin、cumprod、movmean、movmedian、movsum、movstd、movvar、isuniform、isregular
回答有关数据的问题
当任务是回答有关数据的特定问题(前 N 项、筛选、查找、比较)时,请阅读策略参考,以避免排序方向、缺失数据和值解释方面的常见错误。
主题:
- 查找最高、最低、前 N 项或后 N 项
- 根据某一列的排名查找另一列中的值
- 在回答中考虑缺失值或占位值
- 返回原始数据值,不进行替换或映射
- 统计符合条件的行数(精确匹配与部分文本匹配)
函数: topkrows、sortrows、groupsummary、standardizeMissing、isapprox、matches、contains、height、nnz
阅读: answering-data-questions.md
版权所有 2026 The MathWorks, Inc.