天天看点

Vscode搭建轻量级Matlab开发环境

一. 使用Vscode编写m文件的优势与不足

Matlab的启动速度很慢,为追求效率与编写体验,对于一些简单的m文件编写,我们可以选择在Vscode中进行编写和运行。。

Vscode插件丰富,配置好Matlab环境后,可以实现以下功能:

  • 代码高亮
  • 代码自动补全
  • 实时语法检查
  • 代码格式化
  • 不启动Matlab GUI界面直接运行代码
  • 使用Matlab命令行的功能

遗憾的是,Vscode暂时还无法调试m文件,也不能显示Matlab工作区,但编写不那么复杂的程序已经足够好用了。

二. 如何在Vscode中配置Matlab开发环境

2.1 安装Matlab相关扩展

Vscode中的Matlab扩展很多,比较好用的就下图中的四个。

Vscode搭建轻量级Matlab开发环境
扩展名 功能
Matlab 代码高亮、代码补全(此功能效果不佳,部分代码无法自动补全)、实时语法检查
Matlab Interactive Terminal 在Vscode的终端中运行m文件与Matlab命令行
Matlab Snippets 代码补全(对插件Matlab代码补全功能的补充)
matlab-formatter 代码格式化

2.2 扩展配置

2.2.1 Matlab扩展配置

共有5个选项可配置,我们需要配置的是其中的Matlabpath与Mlintpath。mlint.exe就是进行语法检查的程序。

Vscode搭建轻量级Matlab开发环境

对应Setting.json中的代码是:

"matlab.matlabpath": "E:/Matlab/R2021a/bin/matlab.exe",
  "matlab.mlintpath": "E:/Matlab/R2021a/bin/win64/mlint.exe",
           

注意:此扩展无法通过环境PATH去发现对应程序,也无法在路径中以“$环境变量名”的方式使用环境变量,所以,Setting.json中需要写出两程序的绝对路径。这使得如果在多个电脑间使用Vscode,而这些电脑Matlab的安装位置或版本不一致时,每次同步设置都会使得此插件的路径设置失效,每次同步设置后都需要再根据具体电脑的Matlab位置去配置一遍这两个路径。

我已经在Github中向该插件的作者提出了这个问题,希望得到解决,但还没有得到回复。所以,现阶段,如果我们要使用多个电脑,最好保证Matlab安装位置与版本一致,这样就不用每次Setting.json同步后再去设置一下这两个路径了。

2.2.2 Matlab Interactive Terminal扩展设置

此扩展主页说明如下:

Vscode搭建轻量级Matlab开发环境

需要:

  • 64位Python
  • Matlab R2014b及以上版本
  • MATLAB Engine API for Python

注意:对Python的要求基于Matlab的版本,Matlab R2019b需要Python 3.6 或 3.7,关于MATLAB-Python的兼容性参考MathWorks网站。

简单来说,就是根据Matlab版本,安装相兼容的Python,然后在Python中安装一个名为MATLAB Engine API的支持包。

关于MATLAB Engine API的安装参见网站:https://www.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html

Vscode搭建轻量级Matlab开发环境

打开CMD,

转到matlabroot\extern\engines\python文件夹,其中,matlabroot指的是matlab安装路径,代码为:

cd/d E:\Matlab\R2021a\extern\engines\python
           

再执行setup.py,代码为:

python setup.py install
           

过程如下:

Vscode搭建轻量级Matlab开发环境

注意:

  1. 需要先安装对应版本的Python,可通过查看setup.py文件来确定哪些版本合适
    Vscode搭建轻量级Matlab开发环境
    用文本编辑器打开setup.py,如下图。代码中写明了支持的Python版本。
    Vscode搭建轻量级Matlab开发环境
  2. Python需添加到环境变量PATH中,否则python setup.py install将无法执行,因为cmd找不到Python.exe文件。

关于Python安装可参考我的另一篇博文:Python下载与安装教程

2.2.3 Matlab Snippets扩展设置

只需在setting.json中加一行代码:

2.2.4 matlab-formatter扩展设置

可调整缩进空格数,默认为4,一般不改。

此扩展可识别环境变量PATH,所以,Python加入PATH后,这里的Python Path不需要再指定。

说明一下,此扩展只要求Python 3,不要求特定版本的Python,如Python 3.7。

Vscode搭建轻量级Matlab开发环境

2.3 扩展设置总结

  1. 装好对应版本Python 3.x,Python路径添加到环境变量,然后安装MATLAB Engine API支持包
  2. 在setting.json中加入以下代码:
    //* matlab相关插件设置  begin +++++++++++++++++++++++++++++++++++++
      "editor.snippetSuggestions": "top", // 在其它建议上方显示代码片段建议
    
      "matlab.matlabpath": "E:/Matlab/R2021a/bin/matlab.exe",
      "matlab.mlintpath": "E:/Matlab/R2021a/bin/win64/mlint.exe",
      //* matlab插件相关 设置  end   -------------------------------------
               

三. 效果展示

从下图可以看到Vscode具备了代码Lint检查,高亮,格式化与运行代码的功能。

Vscode搭建轻量级Matlab开发环境

四. 其它可能用到的Matlab插件

4.1 Code Runner

Vscode搭建轻量级Matlab开发环境

Code Runner可以一键运行几十种语言,但默认是不支持Matlab的m语言的,直接运行会提示语言不支持:

Vscode搭建轻量级Matlab开发环境

需要在Setting.json中加一行设置,如下:

"code-runner.executorMap": {
    "matlab": "cd $dir && matlab -nosplash -nodesktop -r $fileNameWithoutExt"
  },
           

并且需要将matlab.exe添加到系统环境变量PATH中,如下图所示,否则Code Runner扩展会找不到matlab。

Vscode搭建轻量级Matlab开发环境

运行演示:

Vscode搭建轻量级Matlab开发环境

可见,Code Runner是打开一个单独的Matlab命令行,而Matlab Interactive Terminal是将终端当做命令行,其余方面,两者运行m语言没什么区别。个人更喜欢Matlab Interactive Terminal的方式,它更护眼。

4.2 Matlab Code Run

Vscode搭建轻量级Matlab开发环境

此扩展下载量也很大,功能也是运行m语言的,但是,在我的台式机和笔记本上都无法运行,会提示如下错误。

Vscode搭建轻量级Matlab开发环境

不知道怎么解决这个问题,有同学知道可以在评论区告诉我,谢谢,暂时放弃此插件。

五. 总结

用Vscode编写m语言很便捷,不需要启动matlab(启动时间很长),不足的是无法调试,看不到工作区。基本满足简单m程序的开发需求。

继续阅读