vscode配置matlab工作环境

前面有两篇文章我们分别讲了在vscode里面如何配置C语言环境和python环境,那两篇文章总体来说比较复杂,当然这篇也有许多有趣的问题。
附上链接:
vscode安装并配置python环境
vscode的安装并配置c语言环境

这次尝试给文章加个目录,试试效果。
@[TOC]

matlab简介

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

基本要求

  • 安装matlab,我们学校官网上有,但仅限校内学生老师使用,在各个平台上也可以找到资源,不再赘述。
  • 安装vscode以及必要的插件,可以参考之前的文章

code runner插件

配置python,c,c++等语言,要在vscode上运行时一个特别好用的插件就是code runner,可谓是懒人的福音,它直接满足了40多种计算机语言的运行要求,而不用为每一种语言寻找一个特定的编译器。

Run code snippet or code file for multiple languages: C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, Lisp, Kit, V, SCSS, Sass, CUDA, Less, Fortran, and custom command

在寻找配置matlab环境的过程中无意在知乎发现了它的原作者,是一个在微软上海的中国程序员——膜拜大佬!!!
[VSCode插件推荐] Code Runner: 代码一键运行,支持超过40种语言

但是很悲催的的一点是:40多种语言中,没有matlab

与matlab相关的插件

  • matlab:对,就叫matlab,支持语法检查,高亮等要求,详情可见于下载页。
  • Matlab Interactive Terminal:可在终端执行matlab代码
  • matlab-formatter:调整字体,避免乱码

添加路径

  • 在设置里面搜索matlab,主要是填写Matlabpath和Mlintpath两个路径,按自己的实际路径填写

小结

此时可以在vscode编写matlab代码,会有语法高亮,错误提示等等功能,但是不支持运行,要运行需要复制代码到matlab再执行。


code runner是否支持更多语言

如果不想复制粘贴代码,其实也有方法,想想能不能让code runner支持新语言——例如matlab,这时候我们在设置里搜索code runner,之后点击一个“在setting.json中编辑”,之后可以看到下图



添加一行代码(我已添加),之后程序会在matlab窗口运行,也就是事实上还是在matlab上运行,但是不用打开matlab软件,会给我们开一个小窗口,当然速度没有直接在matlab上那么快。

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

更多选择

事实上现在的最优选择是另外一个插件matlab code run,直接在vscode终端运行,最优选择,唯一缺点在于发现测试都较少,还在初始阶段,没有广泛测试,据说在Mac 和Linux上都可以使用,Windows不太行。

如何使用
打开命令面板(在“视图”下或使用快捷方式ctr+shift+p),找到“运行Matlab文件”命令。
特性
直接运行VS代码而不需要打开完整的Matlab GUI。非图形输出将显示在内置的VS代码终端。图形将在单独的窗口中打开。调试不可用,而且在可预见的将来可能不会改变,因为当前的实现不允许这样做。
需求
目前,matlab必须添加到您的系统路径。否则,扩展将不知道Matlab安装在您的系统的哪里。

另一个选择

还有一个选择就是上面提到的Matlab Interactive Terminal,但是配置的确过于复杂,目前还没有成功。

Matlab交互终端是Visual Studio代码的扩展,允许用户启动Matlab脚本,并在Visual Studio代码中直接包含一个工作的Matlab REPL。这个扩展使用Python的Matlab引擎,必须正确地设置扩展才能工作。它在Windows、Mac OS和Linux上都能运行。
需求
Python x64 3.6或3.7(添加到PATH中),在这里或通过Anaconda等其他发行版提供
MATLAB R2014b (MATLAB 8.4)或更高
Python的MATLAB引擎API,安装说明可以在这里找到
注意:Python的要求可能因Matlab版本的不同而有所不同。建议使用最新的Matlab版本(R2019b)以及Python 3.6或3.7 (x64)。有关MATLAB-Python兼容性的更多信息可以在MathWorks网站上找到。
特性
该扩展将三个命令添加到Visual Studio代码中,然后可以将它们绑定到键绑定。这些都是:
打开Matlab终端,在VS代码集成终端中打开交互式Matlab终端,类似于Matlab命令行
运行当前Matlab脚本,运行当前打开的Matlab脚本,允许用户通过打开的终端与之交互
在Matlab中运行当前选择,在Matlab终端中运行当前选择的文本。如果没有选择文本,则运行当前行
推荐的VS代码扩展
Matlab(来自Xavier Hahn)为Matlab语言提供了语法着色、代码片段和linting。并设计了Matlab交互终端来实现。
Matlab代码运行(来自Bram Vanbilsen)是Matlab交互终端的一个很好的替代品,没有Python和Matlab引擎API的依赖。它应该在Mac OS和Linux上提供类似的功能。
已知的问题
参见https://github.com/apommel/vscode-matlab-interactive-terminal/issues

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342