前言: matlab很好地集成了大量数学处理函数,甚至封装了包括信号处理、图像处理、神经网络、音乐等在内的方法。但matlab启动慢、没有代码补全、开发环境不友善等缺点常受人诟病,算法编写者往往需要进行大量重复动作。而VS Code是微软推出的一款轻量、开源、生态极好的编辑器。本文详细介绍使用VS Code配置matlab环境的方法,使算法编写者可以利用VSC编写.m文件,充分利用VSC的开发友善性与matlab的强大功能。

本文需要的工具/软件:

  • VS Code
  • VS Code插件:Code Runner
  • VS Code插件:Matlab
  • VS Code插件:matlab-formatter
  • matlab

步骤概述:

  • 确认你已经安装了VS Code与matlab
  • 安装VS Code的三个插件:Code Runner、Matlab、matlab-formatter
  • 配置VS Code中的settings.json
  • (可选)为增加matlab.exe为系统变量

第一步:确认VS Code与matlab已经安装

VS Code官网:https://code.visualstudio.com/

matlab官网:https://www.mathworks.com/products/matlab.html

建议安装路径为全英文。

第二步:为VS Code安装插件

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB

VS Code插件安装步骤如下:

  1. 点击左侧插件选项卡(Extensions),或者按Ctrl+Shift+X;
  2. 输入你想要的插件;
  3. 点击插件,安装(Install)。

如下图,分别安装好了Matlab、matlab-formatter与韩老师的Code Runner插件。

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_02

第三步:修改VS Code的settings.json

首先,打开VS Code的settings.json文件,方法如下:

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_03

  1. 点击VS Code左下角的齿轮形状的设置按钮;
  2. 点击Settings;
  3. 在Settings中向下滑动,找到任意一个“Edit in settings.json”链接,点击进入setting.json编辑页面。

下面开始编辑settings.json:

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_04

首先假设,我们的settings.json文件什么配置都没有。

请小白注意:由于我们VS Code版本、安装方式、插件不同,你的settings.json中可能已经有了一些配置,对于下面的代码,已有对象的则加入属性,否则新建对象。

First Step:配置matlab插件

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_05

如上图,在settings.json中输入:

"matlab.mlintpath": "你的bin\\win64\\mlint.exe安装路径",
"matlab.matlabpath": "你的bin\\matlab.exe安装路径",
"matlab.linterEncoding": "gb2312",

这表示:

  • VS Code调用Matlab插件,运行matlab/查看补全/纠错验错时,去上述路径中寻找matlab的引擎;
  • 请写入绝对路径,如上述图片中我的配置;
  • 请注意引号、斜杠、逗号的使用;
  • 如果.json中已有"matlab.mlintpath": “”,对象,将路径填入后面的""即可。

Second Step:配置code-runner

为code-runner对象添加如下配置:

"code-runner.executorMap":{

        "matlab": "cd $dir && matlab -nosplash -nodesktop -r $fileNameWithoutExt",

        ...其他代码不用管...,
}

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_06

效果如上图,这表示:

  • 使用Code Runner运行matlab文件时,首先进入文件所在文件夹;
  • 调用matlab运行该文件。

其中,命令的具体意义为:

cd $dir
# 进入当前文件夹

matlab -nosplash -nodesktop -r $fileNameWithoutExt
# -nosplash表示启动时不显示图标
# -nodesktop表示只启动命令行形式的matlab
# -r表示只读该文件
# $fileNameWithoutExt表示该文件的名称,并且不带后缀名

Third Step:其他配置

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_07

在setting.json中输入如图四个对象:

	"files.associations": {
        "*.m": "matlab",
    },
    
    "code-runner.runInTerminal": true,

    "[matlab]" : {
        "files.encoding": "gb2312",
    },

    "files.autoGuessEncoding": true,

意义为:

  • "files.associations"让VSC识别.m文件为matlab文件;
  • “code-runner.runInTerminal”: true让code-runner的结果在Terminal中显示;
  • 剩下两项为编码选项,对于大部分同学来讲,matlab中难免出现中文注释,matlab使用gb2312编码。

配置完成,Ctrl+S保存settings.json文件!

Forth Step:把matlab.exe添加进系统变量

有些同学顺利运行,而有些同学则遇到“无法将“matlab”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”的报错(原因可能是Matlab插件没有很好地完成自己的工作),这里提供一个简单的处理方法:将matlab.exe加入自己的系统变量。

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_08

如上图,右键“我的电脑”->属性->高级系统设置->高级->环境变量->编辑系统变量。

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_09

选择“Path”进行编辑,新建一个系统变量,将Matlab的bin文件夹加入其中。

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_10


来试试好不好用!

一、打开以前使用matlab写的一个作业!

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_11

这里我推荐VSC打开整个文件夹(项目),当然你右击.m文件,然后“打开方式”选择“VS Code”也可以!

二、运行!

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_12

三、成功输出

【VS Code配置matlab】手把手教学,matlab也能自动补全+瞬间启动+代码整理!_MATLAB_13

本文到这里就结束了,运行matlab的时候可能还是有些慢,毕竟matlab本身体量就很大。

遇到什么bug,或者有取消“为增加matlab.exe为系统变量”的解决方案,欢迎留言、私信or联系我的邮箱:piperliu@qq.com~