答案是可以的!
The MATLAB Engine API for Python provides a package for Python to call MATLAB as a computational engine. (官方网址:Calling MATLAB from Python)
这真是一个人民群众喜闻乐见的好事情!
至于为啥要在Python里调用MATLAB。这可真是我的血泪史了。
Python的3D图的绘制还是逊于MATLAB,最常用的
matplotlib
没有3D引擎!如果要画3D图(比如绘制三维方向图quiver3D
),很多时候都要用到mayavi
,而且这个函数库还有非常严格的版本的依赖项的要求。有一点没哄好,直接就罢工了。另外,MATLAB在工程计算和工程仿真上,比Python强的不是一星半点。
首先要知道两个路径:
Python的interpreter的位置。
我用的Anaconda的Python.exe,所以对应的库要安装在该路径下。
MATLAB的安装路径。
要在这里找到setup.py。
首先在MATLAB安装路径下找到setup.py,我的路径是E:\MATLAB R2019b\extern\engines\python
。
打开Anaconda Prompt(使用Anaconda Prompt是直接安装到Anaconda的环境下),切换路径到该文件夹,执行python setup.py install
。
(使用pip要麻烦一点,不推荐)
然后随便找个代码跑一下(选自https://blog.csdn.net/wkk15903468980/article/details/79196382 )
import matlab
import matlab.engine
import os
import time
import numpy as np
eng=matlab.engine.start_matlab()
mat=eng.fspecial('gaussian',matlab.double([100,100]),3.0)
eng.mesh(mat)
#show from numpy
mat=np.ones([100,100])
mat2=mat.tolist()
mat3=matlab.double(initializer=mat2)
eng.mesh(mat3)
os.system('pause')
结果如图:
python调用matlab API 汇总
后续有必要的话,会单独整理出常见用法的小Demo。