Visual Studio Code 的 MATLAB 扩展

Visual Studio Code 的 MATLAB 扩展

以下是基于 MathWorks 官方 GitHub 仓库 编写的配置步骤指南。


一、准备工作

配置前请确认以下条件:

  • ✅ 已安装 Visual Studio Code(最新稳定版)
  • ✅ 已安装 MATLAB R2021b 或更高版本(如无需高级功能可跳过此要求)
  • ✅ 网络连接正常(用于下载扩展)
  • ✅ 插件Code Runner

二、安装扩展

2.1 通过 VS Code 扩展市场安装(推荐)

  1. 打开 VS Code
  2. 点击左侧活动栏的 扩展图标 (或按 Ctrl+Shift+X / Cmd+Shift+X
  3. 在搜索框中输入 MATLAB
  4. 在结果列表中找到发布者为 MathWorks 的扩展(MathWorks.language-matlab
  5. 点击 Install 按钮安装
  6. 安装完成后,重新加载 VS Code(部分情况下扩展会自动生效)

2.2 通过 VSIX 文件安装(离线/特殊场景)

  1. Visual Studio Marketplace 下载 .vsix 安装包
  2. 打开 VS Code
  3. 进入扩展面板,点击右上角 ... 菜单 → Install from VSIX...
  4. 选择下载的 .vsix 文件完成安装

扩展安装后即可使用基础功能(语法高亮、代码片段、注释、代码折叠等),无需 MATLAB 安装。

三、基础配置

3.1 配置 MATLAB 安装路径(关键步骤)

如果 MATLAB 不在系统 PATH 中,扩展可能无法自动检测到,需手动配置安装路径。

方法一:通过图形界面配置(推荐)

  1. 打开 VS Code 设置:Ctrl+,(Windows/Linux)或 Cmd+,(macOS)
  2. 在搜索框中输入 MATLAB installPath
  3. 找到 MATLAB › Install Path 设置项
  4. 填入 MATLAB 安装根目录的完整路径(如果你安装matlab路径选择默认的话):
    • WindowsC:\Program Files\MATLAB\R2022b
    • macOS/Applications/MATLAB_R2022b.app
    • Linux/usr/local/MATLAB/R2022b

方法二:通过 settings.json 配置

  1. 打开命令面板:Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)
  2. 输入 Preferences: Open Settings (JSON)
  3. 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 中执行 editopen 命令时,文件将在 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
}

五、验证配置

完成配置后,可通过以下方式验证:

  1. 创建一个新的 .m 文件(文件 → 新建文件 → 选择语言为 MATLAB)
  2. 输入简单的 MATLAB 代码,例如 disp('Hello MATLAB')
  3. 点击编辑器右上角的 Run 按钮(▶️)(即MATLAB: Run File或按F5键)运行代码
  4. 在 VS Code 的 Terminal 面板中查看输出结果

如能正常输出,说明配置成功。

六、常见问题与排查

问题现象 可能原因 解决方案
运行代码时提示 "MATLAB was unable to start" MATLAB 安装路径配置错误或路径无效 检查 MATLAB.installPath 是否填写正确;在 MATLAB 中执行 matlabroot 获取正确路径
代码补全/导航功能不生效 工作区索引被禁用或未完成 确认 MATLAB.indexWorkspacetrue;尝试重新加载 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": [



]
}
相关推荐
wearegogog1232 小时前
基于蚁群算法的无人机三维航路规划(MATLAB实现)
算法·matlab·无人机
fie88892 小时前
多IEEE标准系统潮流计算程序(MATLAB实现)
开发语言·matlab
沅_Yuan2 小时前
基于ARIMA-KDE差分自回归移动平均核密度区间估计的时间序列预测模型【MATLAB】
matlab·arima·时序预测·kde
Evand J12 小时前
【三维轨迹目标定位,CKF+RTS,MATLAB程序】基于CKF与RTS平滑的三维非线性目标跟踪(距离+方位角+俯仰角)
开发语言·matlab·目标跟踪
guygg881 天前
极化码(Polar Codes)的MATLAB实现
开发语言·数据结构·matlab
被放养的研究生1 天前
Translate for Zotero
vscode
机器学习之心1 天前
电池SOH估计和RUL预测,基于BiLSTM神经网络的锂电池健康状态估计和剩余寿命预测,MATLAB代码
人工智能·神经网络·matlab·电池soh估计·rul预测·bilstm神经网络
ghie90901 天前
MATLAB 解线性方程组的迭代法
开发语言·算法·matlab
dLYG DUMS2 天前
vscode配置django环境并创建django项目(全图文操作)
vscode·django·sqlite