如何在Python中与MATLAB交互?
有个朋友问我怎么做一个小的网页界面,可以接受一些输入,然后把这些输入发送到MATLAB进行计算,最后输出结果。我是个Python/Django开发者,所以网页界面我能搞定,但对MATLAB就一头雾水。具体来说:
- 我真的不想把这个放在Windows服务器上。请问在Linux上运行MATLAB会不会有问题,尤其是那些在Windows上写的脚本?
- 我应该考虑用命令行的方式来执行,还是把它编译成C语言,然后用
ctypes
来和它互动呢? - 如果选择编译的话,有什么需要注意的地方吗?比如怎么把它编译好并在Python中使用?(我已经很久没碰过编译或C语言了)
有没有什么建议、技巧或者窍门可以帮我实现这个目标?
4 个回答
6
从Matlab R2014b版本开始,提供了一种新的方法,可以通过一个Python库来调用Matlab。这是通过使用MATLAB Engine API for Python实现的。
13
你可以看看 mlabwrap,这个工具可以让你通过Python来调用Matlab。
18
有一个叫做 python-matlab bridge 的工具,它的特别之处在于 Matlab 在后台作为一个服务器运行,这样每次调用 Matlab 函数时,就不需要重新启动,省去了很多时间。
使用起来非常简单,只需要下载这个工具,然后运行以下代码:
from pymatbridge import Matlab
mlab = Matlab(matlab='/Applications/MATLAB_R2011a.app/bin/matlab')
mlab.start()
res = mlab.run('path/to/yourfunc.m', {'arg1': 3, 'arg2': 5})
print res['result']
你在 yourfunc.m 文件里的内容可以写成这样:
%% MATLAB
function lol = yourfunc(args)
arg1 = args.arg1;
arg2 = args.arg2;
lol = arg1 + arg2;
end