windows下python调用matlab

本文介绍在Windows 64位系统上使用Python调用Matlab的方法,包括配置Anaconda 32位及64位环境、安装并配置Python的Matlab扩展,以及使用mlab库进行调用的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:很无奈,有些功能自己无法实现,只能调用别人的工具,才有此一举。配置过程中出现一些问题,试了很多次,下面哪些过程是必要不是很清楚了。

如果在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(估计没时间,做完这个事写论文就找工作了,以后来补)然后做写例子看看


参考文献

[1] http://blog.sina.com.cn/s/blog_57a1cae80101osbj.html

[2] https://pypi.python.org/pypi/mlab/1.1.2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值