读了 https://zhuanlan.zhihu.com/p/616873284 这篇文章,看起来好像很厉害的样子,于是想部署一下matlab-in-vscode这个插件,遇到了一些坑,于是记录。
安装插件
直接在vscode搜索maltab in vscode就行
settings.json配置
为了能最终运行,增加了下面这些代码。
"MATLAB.installPath": "E:\\MATLAB\\R2022b",
"matlab.matlabpath": "E:\\MATLAB\\R2022b\\bin\\matlab.exe",
"matlab.mlintpath" : "E:\\MATLAB\\R2022b\\bin\\win64\\mlint.exe",
"matlab.linterEncoding": "gb2312",
"workbench.settings.applyToAllProfiles": [
"MATLAB.installPath"
],
"code-runner.executorMap":{
"matlab": "cd $dir && matlab -nosplash -nodesktop -r $fileNameWithoutExt",
},
"files.associations": {
"*.m":"matlab",
},
"code-runner.runInTerminal": true,
"[matlab]" : {
"files.encoding": "gb2312",
},
"files.autoGuessEncoding": true,
"matlab-interactive-terminal.pythonPath": "E:\\Anaconda3\\envs\\formatlab\\python.exe",
"matlab-in-vscode.matlabPybackend": true,
"matlab-in-vscode.matlabStartup": [
"disp(['Working directory: ', pwd]);"
],
下面这部分代码实现的功能是避免terminal使用windows自带的powershell而是使用anaconda的配置环境。
formatlab是我的环境名称,可以根据自己的情况做修改。也可以改成路径名,例如conda activate ‘C:\ProgramData\Anaconda3’
"terminal.integrated.profiles.windows": {
"Anaconda Prompt": {
"path": "powershell.exe",
"args": [
"-ExecutionPolicy" ,"ByPass", "-NoExit", "-Command","& 'E:\\Anaconda3\\shell\\condabin\\conda-hook.ps1'; conda activate formatlab "
],
"title":"Anaconda Prompt"
}
},
"terminal.integrated.defaultProfile.windows": "Anaconda Prompt",
ternimal配置
我是针对conda环境做的配置,对于windows的powershell环境应该也是一样的。需要注意的是OSError: MATLAB Engine for Python supports Python version 2.7, 3.8, 3.9, and 3.10,只支持2.7, 3.8, 3.9, and 3.10这四个版本(也可以根据自己的matlab版本具体分析)
conda create --prefix=E:\Anaconda3\envs\formatlab python=3.10
conda activate formatlab
cd e:
cd E:\MATLAB\R2022b\extern\engines\python
python setup.py install
重启vscode,完成配置
完成以上内容就可以使用matlab-in-vscode了。这个插件比较实用的点在于可以用%%分割代码块,然后ctrl+enter进行逐块测试。但是它的运行实际上只是把代码逐行输出到matlab的命令行了,所以好像是没办法使用自定义函数的。仅能作为matlab在vscode上的一种参考拓展方案。