该技能用于在运行中的 MATLAB 会话里使用内置 MATLAB Package Manager(mpm* 命令族与 matlab.mpm.* 类),目标版本为 MATLAB R2026b 或更高(在 manifest.yaml 中声明)。注意:这是会话内的 mpm,与同名的操作系统级 mpm 可执行文件(用于安装 MATLAB、Simulink 和工具箱)是不同工具。
用途:安装、卸载、更新、搜索、列出任意 MATLAB 包;查询已装包、依赖、所在位置、可用版本;解析包名或检查 matlab.toml 项目声明的包安装状态;安装可分发的 .mltbx;添加/移除/列出仓库;诊断“Unable to locate dependency”错误。
不适合:用 shell 的 mpm install --products 安装 MATLAB/Simulink/工具箱;完整的 .mltbx 编写流程;编辑项目配置或引用项目;用 requiredFilesAndProducts 做代码文件/产品依赖分析;无 mpm 参与的命名空间或授权工具箱;R2026b 之前版本建议用 Add-On Manager GUI。
关键规则:对 mpminstall、mpmuninstall、mpmupdate、openProject 必须传 Prompt=false,否则交互确认在非交互会话(MCP / -batch)中挂起,并可能报出误导性的“Array indices must be positive integers”错误。仅 mpmsearch(Name=…) 区分大小写,其余匹配不区分。mpmsearch 只搜索已索引仓库,File Exchange 与自定义/服务型(Artifactory/MPRS)仓库不被索引,空结果不等于未找到。可用 mpminstall(..., DryRun=true, Prompt=false) 解析包名,它搜索所有已配置仓库并报告所选仓库而不安装。推荐用项目与 matlab.toml 保证可复现;-batch 安装因 MATLAB 设置不会持久化,长期 MCP 会话可能在启动时缓存注册表。包文件与 MATLAB 路径相互独立,安装只是把文件夹暴露到路径;mpmuninstall 默认保留磁盘文件,除非 Delete=true。所有包安装是全局的,没有项目级包存储。Force=true 具破坏性:安装时可能移除其他包,卸载时级联依赖,应先与用户确认。
主要命令:mpminstall(从仓库或 .mltbx 安装并解析依赖)、mpmuninstall(卸载,Delete=true 清磁盘)、mpmupdate(更新至最新或指定版本)、mpmlist(列出已装包为 matlab.mpm.Package 数组)、mpmsearch(搜索并枚举版本)、mpmAddRepository / mpmRemoveRepository / mpmListRepositories(管理仓库)、matlab.mpm.RepositoryConfiguration(加载 repo-config.json 以支持自定义/认证仓库)、matlab.mpm.Package(已装包元数据)、openProject(打开 TOML 项目并补充安装声明包)。
用法要点:项目中在 matlab.toml 的 [dependencies] 用 { version, id } 形式声明包,并以 Prompt=false 打开项目,MATLAB 会增量安装缺失的声明包;编辑后用 reload(proj) 重新解析,runChecks(proj) 把任何 Missing/Unresolved 视为失败。查询包信息用 mpmlist 和 matlab.mpm.Package,不要用 matlab.addons.installedAddons 或 installedToolboxes;读取标量属性,避免对 Package 或对象型属性(Provider、Dependencies、Repository、Folders)做 string()/fprintf 显示,否则抛错。搜索:位置参数做关键词搜索,Name= 加 VersionSelectionPolicy="all" 列出所有版本,PackageSpecifier= 指定 name@version,绝不能写成 Name="Battery@1.1.0" 这种复合形式。File Exchange 结果需通过 MathWorks 搜索端点发现 package_name 后再 mpminstall;自定义仓库直接用其 REST API(如 /v1/packages/by-name/<name>.json、/v1/packages/index.json,Authorization: Bearer 头,令牌来自环境变量);仓库配置中 access_token 用 "${ARTIFACTORY_TOKEN}" 等环境变量占位符,不写明文。更新时 mpmupdate 版本范围默认 "*",UpdateDependencies 默认 "necessary";跨包身份(不同 ID/provider)需用 AllowVersionReplacement=true 显式替换。更完整的语法、属性显示注意事项与陷阱清单见 references/api-and-gotchas.md。