Matlab的启动速度很慢,为追求效率与编写体验,对于一些简单的m文件编写,我们可以选择在Vscode中进行编写和运行。
Vscode插件丰富,配置好Matlab环境后,可以实现以下功能:
遗憾的是,Vscode暂时还无法调试m文件,也不能显示Matlab工作区,但编写不那么复杂的程序已经足够好用了。
Vscode中的Matlab扩展很多,比较好用的就下图中的四个。
扩展名 | 功能 |
---|---|
Matlab | 代码高亮、代码补全(此功能效果不佳,部分代码无法自动补全)、实时语法检查 |
Matlab Interactive Terminal | 在Vscode的终端中运行m文件与Matlab命令行 |
Matlab Snippets | 代码补全(对插件Matlab代码补全功能的补充) |
matlab-formatter | 代码格式化 |
共有5个选项可配置,我们需要配置的是其中的Matlabpath与Mlintpath。mlint.exe就是进行语法检查的程序。
对应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同步后再去设置一下这两个路径了。
此扩展主页说明如下:
需要:
注意:对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
打开CMD,
转到matlabroot\extern\engines\python文件夹,其中,matlabroot指的是matlab安装路径,代码为:
cd/d E:\Matlab\R2021a\extern\engines\python
再执行setup.py,代码为:
python setup.py install
过程如下:
注意:
关于Python安装可参考我的另一篇博文:Python下载与安装教程
只需在setting.json中加一行代码:
"editor.snippetSuggestions": "top", // 在其它建议上方显示代码片段建议
可调整缩进空格数,默认为4,一般不改。
此扩展可识别环境变量PATH,所以,Python加入PATH后,这里的Python Path不需要再指定。
说明一下,此扩展只要求Python 3,不要求特定版本的Python,如Python 3.7。
装好对应版本Python 3.x,Python路径添加到环境变量,然后安装MATLAB Engine API支持包
在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检查,高亮,格式化与运行代码的功能。
Code Runner可以一键运行几十种语言,但默认是不支持Matlab的m语言的,直接运行会提示语言不支持:
需要在Setting.json中加一行设置,如下:
"code-runner.executorMap": {
"matlab": "cd $dir && matlab -nosplash -nodesktop -r $fileNameWithoutExt"
},
并且需要将matlab.exe添加到系统环境变量PATH中,如下图所示,否则Code Runner扩展会找不到matlab。
运行演示:
可见,Code Runner是打开一个单独的Matlab命令行,而Matlab Interactive Terminal是将终端当做命令行,其余方面,两者运行m语言没什么区别。个人更喜欢Matlab Interactive Terminal的方式,它更护眼。
此扩展下载量也很大,功能也是运行m语言的,但是,在我的台式机和笔记本上都无法运行,会提示如下错误。
不知道怎么解决这个问题,有同学知道可以在评论区告诉我,谢谢,暂时放弃此插件。
用Vscode编写m语言很便捷,不需要启动matlab(启动时间很长),不足的是无法调试,看不到工作区。基本满足简单m程序的开发需求。
徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。