由于笔者需要在python程序中调用matlab,故记录下调用方法以及测试。
系统环境:win10 + python2.7 + Matlab R2016a
API
MATLAB在安装的过程中已经准备好了相关文档。
第一步要做的就是确定自己电脑matlab的安装目录,找到以下路径
cd <Installpath>...MATLAB\R2016a\extern\engines\python
笔者安装路径为: C:\Program Files\MATLAB\R2016a\extern\engines\python
之后以管理员方式启动command window(重要!!),在里面定位到以上路径,输入python setup.py install,即可开始运行安装。
python setup.py install
【注意】笔者电脑刚开始只用了python3.6,运行完提示只支持python2.7,3.3和3.4版本,因此又重新创建了一个python27的环境。
后来另一个问题又出现了,笔者在使用powershell来运行的时候,python27环境一直无法激活
后来发现需要先以管理员身份启动powershell,在其中输入:
Set-ExecutionPolicy RemoteSigned
之后提示如下:
PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如http://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助(默认值为“N”):Y
输入Y,然后回车
至此结束,重新开一个PowerShell就可以在其中正常使用activate python27来激活虚拟环境了,发现激活成功
之后再运行 python setup.py install
在python下import matlab发现导入成功。
Test
在matlab中新建一个test.m文件,然后命名一个test函数,来计算y=3x+4
function y = test(x)
y = 3*x+4;
在同一目录下,新建一个matlabtest.py文件,调用test.m文件中的test函数
import matlab
import matlab.engine
engine = matlab.engine.start_matlab() # Start MATLAB process
y = engine.test(3) #求解x=3时,y=a*x+b的值
print(y)
测试效果如下: