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": [



]
}
相关推荐
xiao5kou4chang6kai47 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
bubiyoushang8888 天前
电力线信道“五类噪声”仿真MATLAB
开发语言·matlab
cici158748 天前
彩色图像模糊增强(Fuzzy Enhancement)MATLAB 实现
开发语言·算法·matlab
kaikaile19958 天前
图像稀疏化分解 + 压缩感知(CS)重建 MATLAB
开发语言·计算机视觉·matlab
yugi9878388 天前
PNCC(Power-Normalized Cepstral Coefficients)— MATLAB 实现
开发语言·人工智能·matlab
cooldog123pp8 天前
cplex完全安装手册,适配matlab和python!
人工智能·python·matlab·cplex
爱就是恒久忍耐8 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
意法半导体STM328 天前
【官方原创】如何为STM32CubeMX2配置Visual Studio Code配置方案
vscode·stm32·单片机·嵌入式硬件·策略模式·stm32cubemx·嵌入式开发
2zcode8 天前
项目文档:基于MATLAB语音信号变声算法设计与实现
算法·matlab·语音识别
bloglin999998 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器