Visual Studio Code 的 MATLAB 扩展
以下是基于 MathWorks 官方 GitHub 仓库 编写的配置步骤指南。
一、准备工作
配置前请确认以下条件:
- ✅ 已安装 Visual Studio Code(最新稳定版)
- ✅ 已安装 MATLAB R2021b 或更高版本(如无需高级功能可跳过此要求)
- ✅ 网络连接正常(用于下载扩展)
- ✅ 插件Code Runner
二、安装扩展
2.1 通过 VS Code 扩展市场安装(推荐)
- 打开 VS Code
- 点击左侧活动栏的 扩展图标 (或按
Ctrl+Shift+X/Cmd+Shift+X) - 在搜索框中输入
MATLAB - 在结果列表中找到发布者为 MathWorks 的扩展(
MathWorks.language-matlab) - 点击 Install 按钮安装
- 安装完成后,重新加载 VS Code(部分情况下扩展会自动生效)
2.2 通过 VSIX 文件安装(离线/特殊场景)
- 从 Visual Studio Marketplace 下载
.vsix安装包 - 打开 VS Code
- 进入扩展面板,点击右上角
...菜单 →Install from VSIX... - 选择下载的
.vsix文件完成安装
扩展安装后即可使用基础功能(语法高亮、代码片段、注释、代码折叠等),无需 MATLAB 安装。
三、基础配置
3.1 配置 MATLAB 安装路径(关键步骤)
如果 MATLAB 不在系统 PATH 中,扩展可能无法自动检测到,需手动配置安装路径。
方法一:通过图形界面配置(推荐)
- 打开 VS Code 设置:
Ctrl+,(Windows/Linux)或Cmd+,(macOS) - 在搜索框中输入
MATLAB installPath - 找到 MATLAB › Install Path 设置项
- 填入 MATLAB 安装根目录的完整路径(如果你安装matlab路径选择默认的话):
- Windows :
C:\Program Files\MATLAB\R2022b - macOS :
/Applications/MATLAB_R2022b.app - Linux :
/usr/local/MATLAB/R2022b
- Windows :
方法二:通过 settings.json 配置
- 打开命令面板:
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入
Preferences: Open Settings (JSON) - 在
settings.json中添加或修改以下配置(路径请替换为实际值):
json
{
"MATLAB.installPath": "C:\\Program Files\\MATLAB\\R2022b"
}
如何获取正确路径?
在 MATLAB 命令窗口中执行 matlabroot 命令,返回的路径即为正确的安装根目录路径。
常见问题提示:
- Windows 路径中的反斜线
\需写为\\(JSON 转义)- 如使用 WSL 远程开发,MATLAB 需安装在远程机器 上,并在远程设置中配置路径
- 如遇到代理问题导致连接失败,可尝试完全禁用代理或放行所有到 localhost 的代理连接
3.2 基础配置项速查
| 配置项 | 说明 | 默认值 | 推荐设置 |
|---|---|---|---|
MATLAB.installPath |
MATLAB 安装根目录 | 自动检测 | 当自动检测失败时手动指定 |
MATLAB.defaultEditor |
使 VS Code 成为 MATLAB edit/open 命令的默认编辑器 |
false |
如需用 VS Code 打开 .m 文件则设为 true |
MATLAB.startDebuggerAutomatically |
遇到断点时自动启动 VS Code 调试器 | false |
如需 VS Code 调试界面建议设为 true |
MATLAB.indexWorkspace |
是否索引工作区中的所有 .m 文件 |
true |
大型工作区可设为 false 提升性能(会降低代码导航功能) |
MATLAB.matlabConnectionTiming |
控制扩展何时启动 MATLAB 进程 | onStart |
大项目可设为 onDemand 延迟启动 |
四、高级配置
4.1 设置 MATLAB 为默认编辑器
启用此设置后,在 MATLAB 中执行 edit 或 open 命令时,文件将在 VS Code 中打开,而非 MATLAB 内置编辑器。
json
{
"MATLAB.defaultEditor": true
}
注意 :
.mlx(Live Code 文件)和.mlapp(MATLAB App 文件)始终默认在 MATLAB 中打开。
4.2 控制 MATLAB 启动时机
默认情况下,打开任意 .m 文件后扩展会立即在后台启动 MATLAB。如需优化资源占用,可将连接时机改为 onDemand,扩展仅在需要运行或调试代码时才启动 MATLAB。
json
{
"MATLAB.matlabConnectionTiming": "onDemand"
}
4.3 禁用工作区索引(大型项目优化)
对于包含大量 .m 文件的大型项目,禁用索引可显著提升 VS Code 性能,但会牺牲代码导航(如跳转定义、查找引用)等功能。
json
{
"MATLAB.indexWorkspace": false
}
五、验证配置
完成配置后,可通过以下方式验证:
- 创建一个新的
.m文件(文件 → 新建文件 → 选择语言为 MATLAB) - 输入简单的 MATLAB 代码,例如
disp('Hello MATLAB') - 点击编辑器右上角的 Run 按钮(▶️)(即MATLAB: Run File或按F5键)运行代码
- 在 VS Code 的 Terminal 面板中查看输出结果
如能正常输出,说明配置成功。
六、常见问题与排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 运行代码时提示 "MATLAB was unable to start" | MATLAB 安装路径配置错误或路径无效 | 检查 MATLAB.installPath 是否填写正确;在 MATLAB 中执行 matlabroot 获取正确路径 |
| 代码补全/导航功能不生效 | 工作区索引被禁用或未完成 | 确认 MATLAB.indexWorkspace 为 true;尝试重新加载 VS Code 窗口 |
| 断点无法在 VS Code 调试界面中显示 | 扩展限制 | 断点仍会生效,但不在 VS Code 编辑器中显示;可在 MATLAB 终端使用调试命令 |
| 远程开发(WSL/SSH)中扩展无法连接 | MATLAB 未安装在远程机器上 | MATLAB 需安装在远程机器,并在远程的 VS Code 设置中配置 MATLAB.installPath |
| 变量值在调试时未更新 | 扩展刷新延迟 | 变量值在 VS Code 调试界面的更新会在下一次调试暂停时刷新 |
附:完整配置示例(settings.json)
假设安装路径为D:\Program Files (x86)\software\Matlab2024
json
{
//---
//其它配置
// MATLAB 安装路径(Windows 示例)
"MATLAB.installPath": "D:\\Program Files (x86)\\software\\Matlab2024",
// 使 VS Code 成为 MATLAB 的默认编辑器
"MATLAB.defaultEditor": true,
// 遇到断点时自动启动调试器
"MATLAB.startDebuggerAutomatically": true,
// 延迟启动 MATLAB,仅在需要时连接
"MATLAB.matlabConnectionTiming": "onDemand",
// 启用工作区索引(确保代码导航功能正常)
"MATLAB.indexWorkspace": true,
//"matlab.executablePath": "D:\\Program Files (x86)\\software\\Matlab2024\\bin\\matlab.exe",
//用于告诉 VS Code 你的 MATLAB 程序(matlab.exe)在硬盘上的具体安装位置
//可选(仅当使用第三方扩展时) 官方扩展不使用此项
"matlab.mlintpath": "D:\\Program Files (x86)\\software\\Matlab2024\\bin\\win64\\mlint.exe",//语法检查器
"php.validate.executablePath": "",
"workbench.settings.applyToAllProfiles": [
]
}
在settings.json 中找到code-runner.executorMap中添加 MATLAB 配置(可选):
json
"code-runner.executorMap": {
//其它配置
//配置MATLAB
"matlab": "cd $dir && \"D:\\Program Files (x86)\\software\\Matlab2024\\bin\\matlab.exe\" -nodisplay -nosplash -nodesktop -batch \"try, run('$fileName'), catch, exit(1), end\""
// -nodisplay
// 不显示图形界面
// -nosplash
// 不显示启动画面
// -nodesktop
// 不启动桌面环境
// -batch "command"
// 执行命令后退出
// -r "command"
// 执行命令后保持 MATLAB 打开
}
创建 launch.json文件,默认保存

运行------按快捷键F5或三角图标▶️

附settings.json完整代码(每个人的VS Code配置各不相同,参考意义不大)
json
{
"workbench.colorTheme": "Dark Modern",
"code-runner.runInTerminal": true,
"code-runner.saveAllFilesBeforeRun": true,
"code-runner.saveFileBeforeRun": true,
"window.zoomLevel": 1,
"cmake.showOptionsMovedNotification": false,
"python.defaultInterpreterPath": "D:\\Program Files (x86)\\software\\python\\python.exe",
"code-runner.languageIdToFileExtensionMap": {
"bat": ".bat",
"powershell": ".ps1",
"typescript": ".ts"
},
"code-runner.executorMap": {
"javascript": "node",
"php": "C:\\php\\php.exe",
"python": "python",
"perl": "perl",
"ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
"go": "go run",
"html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
// "c": "chcp 65001 && cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -finput-charset=UTF-8 -fexec-charset=GBK && .\\$fileNameWithoutExt",
//输入UTF-8 → 输出GBK(兼容默认终端)
//参数作用
//-finput-charset=UTF-8:声明源代码文件为UTF-8编码(若文件实际编码不符需调整)
//-fexec-charset=GBK:强制可执行文件运行时使用GBK编码输出,匹配CMD/PowerShell默认编码
"matlab": "cd $dir && \"D:\\Program Files (x86)\\software\\Matlab2024\\bin\\matlab.exe\" -nodisplay -nosplash -nodesktop -batch \"try, run('$fileName'), catch, exit(1), end\""
// -nodisplay
// 不显示图形界面
// -nosplash
// 不显示启动画面
// -nodesktop
// 不启动桌面环境
// -batch "command"
// 执行命令后退出
// -r "command"
// 执行命令后保持 MATLAB 打开
},
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.codeActionsOnSave": {},
"[c]": {
"editor.defaultFormatter": "ms-vscode.cpptools"
},
"fittencode.inlineCompletion.enable": true,
"fittencode.languagePreference.displayPreference": "zh-cn",
"fittencode.languagePreference.commentPreference": "zh-cn",
"Lingma.localMachineModel": false,
"workbench.editor.empty.hint": "hidden",
"workbench.editor.enablePreview": false,
"window.customTitleBarVisibility": "windowed",
"fittencode.disableSpecificInlineCompletion.suffixes": "py",
"github.copilot.enable": {
"*": false,
"plaintext": false,
"markdown": false,
"scminput": false,
"python": false
},
"Lingma.cloudModelEnable": false,
"fittencode.selection.showCodeLens": false,
"code-runner.executorMapByFileExtension": {
".vb": "cd $dir && vbc /nologo $fileName && $dir$fileNameWithoutExt",
".vbs": "cscript //Nologo",
".scala": "scala",
".jl": "julia",
".cr": "crystal",
".ml": "ocaml",
".zig": "zig run",
".exs": "elixir",
".hx": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",
".rkt": "racket",
".scm": "csi -script",
".ahk": "autohotkey",
".au3": "autoit3",
".kt": "cd $dir && kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -jar $fileNameWithoutExt.jar",
".kts": "kotlinc -script",
".dart": "dart",
".pas": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
".pp": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
".d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",
".hs": "runhaskell",
".nim": "nim compile --verbosity:0 --hints:off --run",
".csproj": "dotnet run --project",
".fsproj": "dotnet run --project",
".lisp": "sbcl --script",
".kit": "kitc --run",
".v": "v run",
".vsh": "v run",
".sass": "sass --style expanded",
".cu": "cd $dir && nvcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
".ring": "ring",
".sml": "cd $dir && sml $fileName",
".mojo": "mojo run",
".erl": "escript",
".spwn": "spwn build",
".pkl": "cd $dir && pkl eval -f yaml $fileName -o $fileNameWithoutExt.yaml",
".gleam": "gleam run -m $fileNameWithoutExt"
},
"code-runner.executorMapByGlob": {
"pom.xml": "cd $dir && mvn clean package"
},
"digital-ide.welcome.show": false,
"EIDE.C51.INI.Path": "d:\\Program Files (x86)\\software\\Keil C51\\TOOLS.INI",
"terminal.integrated.commandsToSkipShell": [
"matlab.interrupt"
],
"[matlab]": {
"files.encoding": "gb2312"
},
"MATLAB.installPath": "D:\\Program Files (x86)\\software\\Matlab2024",
//"matlab.executablePath": "D:\\Program Files (x86)\\software\\Matlab2024\\bin\\matlab.exe",
//用于告诉 VS Code 你的 MATLAB 程序(matlab.exe)在硬盘上的具体安装位置
//可选(仅当使用第三方扩展时) 官方扩展不使用此项
"matlab.mlintpath": "D:\\Program Files (x86)\\software\\Matlab2024\\bin\\win64\\mlint.exe",//语法检查器
"php.validate.executablePath": "",
"workbench.settings.applyToAllProfiles": [
]
}