927 字
5 分钟
在 VSCode 中写 MATLAB

前言#

Mathworks 官方于 2023 年 4 月 27 日发布了MATLAB 插件, 这意味着官方终于提供了一个在 VSCode 中写 MATLAB 的解决方案.事实上,在 VSCode 中写 MATLAB 这种需求早就存在,毕竟大家普遍对 MATLAB 的编辑器和界面颇有微词.介绍的文章也很多,但内容大多老旧.基本上是使用好多个不同插件来分别实现代码补全,代码高亮和运行的功能,配置起来也比较麻烦.本文将基于 Mathworks 官方的插件和 Matlab interactive Terminal 插件来实现在 VSCode 中写 MATLAB 的功能.

MATLAB 插件#

事实上其官方介绍已经很详细的说明了功能和使用方法.

实现的功能#

根据其说明,MATLAB 插件实现了以下基础功能 (不需要 MATLAB 主体):

  • Syntax highlighting
  • Code snippets
  • Commenting
  • Code folding

如果你的电脑上安装了 R2021a 或者更新的版本,则还可以实现以下功能:

  • Automatic code completion
  • Source code formatting (document formatting)
  • Code navigation
  • Code analysis, such as continuous code checking and automatic fixes

事实上其提供的功能已经非常完善了,相信会在未来的版本中提供更多的功能.

配置#

主要需要配置的地方是路径和 MATLAB 连接时间.

MATLAB 路径#

MATLAB 插件需要知道你的 MATLAB 安装在哪里,以便于调用 MATLAB 的引擎.

如果你不记得路径了,可以在 MATLAB 的命令行中输入matlabroot来查看.

MATLAB 连接时机设置#

运行 MATLAB 代码往往需要启动 MATLAB 引擎 (废话), 插件提供了三种连接时机:

  • onStart (default) — Start MATLAB as soon as a MATLAB code file is opened.
  • onDemand — Start MATLAB only when needed for a given action.
  • never — Never start MATLAB.Note: Some functionality is available only with MATLAB running in the background.

基本上选前两项就行了,如果你的电脑配置不高,可以选择 onDemand, 这样就不会在打开 VSCode 时就启动 MATLAB 引擎.

其他配置#

MATLAB Index Workspace SettingMATLAB Telemetry Setting保持打开即可.

Matlab interactive Terminal 插件#

官方介绍

MATLAB 插件只提供了基础的语法高亮和代码补全,但是并没有提供运行代码的功能.这时候就需要 Matlab interactive Terminal 插件了.

Matlab interactive Terminal 插件基于 MATLAB 自带的python引擎,可以在 VSCode 中启动一个 MATLAB 的交互式终端,并且可以在其中运行 MATLAB 代码.

配置#

python 路径#

在拓展设置中找到Matlab Interactive Terminal: Python Path, 然后输入你的 python 路径即可.

启用 MATLAB 插件#

在终端 (管理员) 中运行下列命令:

cd "C:\Program Files\MATLAB\R2021a\extern\engines\python" # 这里是你的MATLAB安装路径
python setup.py install

安装成功后执行以下命令:

python
import matlab.engine
eng = matlab.engine.start_matlab()

没有报错的话就说明安装成功了.

注意事项:

  • 你的 python 版本必须是 3.8, 3.9, 3.10 其中之一,否则会报错.(具体参考拓展页面的说明,一般情况下最新的 python 都是不支持的)
  • 必须使用管理员权限运行终端,否则第一步无法执行.

使用#

设置完成后,重启 VSCode, 在 MATLAB 文件中按下Ctrl+Shift+P, 输入MATLAB, 应该会出现三个新的选项:

  • Open a MATLAB Terminal (打开 MATLAB 终端)
  • Run current MATLAB script (运行当前 MATLAB 脚本)
  • Run current selection in MATLAB (运行当前选中的 MATLAB 代码)

为了使用方便可以将这三个命令绑定到快捷键上.

Run current MATLAB script为例,在keybindings.json(快捷键Ctrl+K, Ctrl +S后点击左上角即可) 中添加如下代码即可:

{
    "key": "ctrl+enter",
    "command": "matlab.runCurrentScript",
    "when": "editorTextFocus && editorLangId == 'matlab'"
}

注意一定要加editorLangId == 'matlab' 这个条件,否则会导致其他语言的文件也会被执行.

在 VSCode 中写 MATLAB
https://fuwari.vercel.app/posts/在vscode中写matlab/
作者
will-c137
发布于
2023-09-19
许可协议
CC BY-NC-SA 4.0