必须安装mathworks官方插件(发布者mathworks.matlab)并正确配置matlab.defaultinterpreterpath指向matlab.exe或/bin/matlab绝对路径,否则运行、补全、调试全部失效;调试前须手动启动共享引擎matlab -nodisplay -r "matlab.engine.shareengine('myengine'); pause;"且launch.json中enginename需严格匹配。

必须装 MathWorks 官方插件,且 matlab.defaultInterpreterPath 必须指向真实可执行文件,否则运行、补全、调试全部失效——这不是建议,是硬性前提。
只认 MathWorks 官方插件,别碰第三方
VS Code 中能真正打通 MATLAB 引擎的,只有发布者为 mathworks.matlab 的官方插件。装错一个,比如 MATLAB Unofficial 或 matlab-formatter,就会导致:MATLAB:Connected 不出现、mlint 报错、补全完全不响应。
- 卸载所有非官方 MATLAB 相关扩展(包括带“Unofficial”“Interactive Terminal”字样的)
- 在扩展市场搜
MATLAB,认准发布者 ID 是mathworks.matlab,不是Gimly81或Xavier Hahn - 安装后重启 VS Code,左下角状态栏必须出现
MATLAB:Connected(首次可能延迟几秒)
matlab.defaultInterpreterPath 填什么?填错就直接报错
这个路径不是 MATLAB 安装目录,也不是 matlabroot 返回值,而是指向 matlab.exe(Windows)或 matlab(macOS/Linux)的**绝对路径**。填错会直接弹出 MATLAB not found。
- Windows:命令行运行
where matlab,取第一行完整路径,例如C:\Program Files\MATLAB\R2025b\bin\matlab.exe - macOS/Linux:终端执行
matlab -batch "disp(matlabroot)",再拼上/bin/matlab,例如/Applications/MATLAB_R2025b.app/bin/matlab - 在 VS Code 设置中搜索
matlab.defaultInterpreterPath→ “在 settings.json 中编辑”,粘贴上述路径(注意 Windows 用双反斜杠\或正斜杠/)
运行 .m 文件的三种方式,别信“一键运行”图标
那个顶部的 ▶ 图标背后逻辑模糊,容易因工作区路径、终端当前目录或引擎未共享而失败。更可控的做法有三种:
- 终端手动调用:在 VS Code 集成终端(
Ctrl+`)里执行matlab -nodisplay -r "run('myscript.m'); exit;"——加-nodisplay跳过 GUI,快 3–5 秒 - 配
tasks.json:在工作区.vscode/tasks.json中定义任务,command设为matlab,args填["-batch", "run('$fileBasenameNoExtension')"],之后用Ctrl+Shift+P→Tasks: Run Task - 选中代码 +
Ctrl+Enter:只对高亮部分生效,走的是 MATLAB 引擎eval,不依赖文件是否保存、也不切换当前工作目录,适合调试片段
调试前必须手动启动共享引擎
官方插件的调试功能不会自动拉起 MATLAB 进程,必须提前在终端手动启动共享引擎,否则断点根本不会命中。
- 新开一个终端(不要复用已有 MATLAB 进程),执行:
matlab -nodisplay -r "matlab.engine.shareengine('myengine'); pause;" - 然后在 VS Code 的
launch.json中,enginename字段必须和上面的'myengine'严格一致 - 如果跳过这步,调试时会卡在“正在连接 MATLAB 引擎”,或者直接报
Engine not found
最容易被忽略的是:路径填对了,插件也装对了,但没手动启动共享引擎,调试就永远进不去;还有就是误把 matlabroot 当作可执行路径填进 matlab.defaultInterpreterPath,结果连 MATLAB:Connected 都不显示。











