前言:很无奈,有些功能自己无法实现,只能调用别人的工具,才有此一举。配置过程中出现一些问题,试了很多次,下面哪些过程是必要不是很清楚了。
如果在linux系统下面就操作就更简单些,需要的可以上网查查,我就是有个工具一定要在windows下面跑,没办法
实验配置:
系统:windows 64位
python:Anaconda (32-bit) + Anaconda (64-bit) (对应matlab的版本)
matlab:R2015a 64位(我的电脑安装的是这个)
看了一些网上的方法,感觉可以分为两种方法,一开始比较急,一种方法遇到问题就试了另外一种,所以不知道两个方法是不是归为一种:
方法一:编译matlab安装路径下的python扩展功能。
方法二:python安装mlab(很多说安装mlabwrap,实际上python调用matlab,也是通过from mlabwrap import mlab。后面发现mlab有一个独立的包)
方法一:安装过程
可以通过cmd控制台去编译matlab下的python扩展,但由于我安装了两个版本的python,我怕系统用错版本去编译会出现问题,python的版本一定要跟matlab版本一样。在所有程序中找到Anaconda 64位的安装文件夹下的Anaconda Prompt并打开。如图
切换到matlab的安装路径下的python扩展项中,我的路劲是“C:\Program Files\MATLAB\MATLAB Production Server\R2015a\extern\engines\python”,并执行"python setup.py install "命令安装即可安装完成,命令可以参考下图
方法一:调用过程
python函数:
from win32com.client import Dispatch
h = Dispatch("Matlab.application")
sum = h.execute("test(1,2)") #执行test函数,给定两个量(1,2)
print sum
matlab函数:test.m
function sum = test(M,N)
sum= M+N;
end
结果如下:
说明:两个文件要在同一路径,如果用python 32位去编译是会提示python版本不对,这时候执行上面的python函数是会报错的: Undefined function or method 'test' for input arguments of type 'double'.”文献[1]说两个文件要在同一路径,但我的已经是同一路径了,后来有同学提示说可能要修改matlab的路径,但都不能通过,后面改用64位python编译通过后,也不需要改什么就出来正确的结果了。
方法二:安装mlab。直接在cmd控制台或者上面提到的Anaconda Prompt中执行“pip install mlab”即可,但mlabwrap就不行,需要上网下载后自己编译,方法也是进入到setup.py的路径中,执行"python setup.py install ",但需要修改setup.py文件中一些配置,详情可以查看官方文件说明。
方法二:调用过程。看图吧,记得要进入python。进入python就不能执行pip install。
文献[2]给出了例子,可以去看看,目前就做到这一步
可以尝试一些命令来看看对不对,最后那条命令就直接调用matlab画图了
展望:后面有时间编译下mlabwarp(估计没时间,做完这个事写论文就找工作了,以后来补)然后做写例子看看
参考文献