一、简介

众所周知,Python凭借其众多的第三方模块,近年来被数据分析、机器学习、深度学习等爱好者所喜爱,最主要的是Python还是开源的。另一方面,MATLAB因其在仿真方面的独特优势也被众多人追捧。而在国内,虽然MATLAB具有昂贵的价格(学术版的估计也要好几千吧,具体不清楚),但恐怕也是众多搞学术的人的首选平台(原因嘛?呵呵,你懂得)。

既然MATLAB和Python各有各的优势,那能不能将二者的优势结合呢?也就是说能不能将二者的命令相互调用呢??当然能!!!在最新的MATLAB里,我们可以使用大部分(根据MATLAB官方文档)的Python命令(估计是mathworks看到了Python的某些优势,害怕若干年后使用MATLAB的用户越来越少,因为现在MATLAB的好多(注意,并不是全部)功能Python基本都可取代)。

温馨提示:如果是MATLAB和Python的初学者的话,除了某些特殊的功能非要用MATLAB不可,否则建议学习Python。

下面就来说说如何在MATLAB里调用Python吧。

二、环境配置(Windows系统)

我用的MATLAB是最新的(好像只有MATLAB R2015a以后的版本才行)。

1、首先安装好MATLAB;

2、安装Python32/64(要与你的MATLAB一致,否则不兼容),这里建议安装Anaconda32/64,因为可以省去好多安装Python第三方模块的时间。

3、将安装好的Python可执行文件路径加到你MATLAB的工具箱搜索路径中(我的是安装在E盘下的,MATLAB会自动加入其下的子目录),并“保存(save)”即可,如下图所示:

2016a支持的python版本 matlab matlab支持python语言吗_Python

第3步不要好像也行

三、测试

以下截图是测试在MATLAB中调用Python的cv2(见这里Python-OpenCV)模块进行图像的读取并显示的(这里仅作演示配置是否成功,实际中用MATLAB的图像处理工具箱更方便)。

2016a支持的python版本 matlab matlab支持python语言吗_Python_02

其中,py.cv2类似于Python的import cv2,其它的跟Python没啥区别。

相应的Python代码为:

>>> import cv2
>>> image = cv2.imread('G:\img\lena.jpg')
>>> cv2.imshow('Lena',image)
>>> cv2.waitKey(0)

运行结果:

2016a支持的python版本 matlab matlab支持python语言吗_MATLAB_03

说明:

1、这里要说明的是当我们在MATLAB中运行一次py.*之类的语句后,当我们再次输入py.并同时点击Tab键,会自动出现当前可调用的Python模块(函数),如下图:

2016a支持的python版本 matlab matlab支持python语言吗_第三方模块_04

或者当我们输入py.num,同时再点击Tab键,会自动补全为py.numpy

2016a支持的python版本 matlab matlab支持python语言吗_第三方模块_05

2、Python中的from x import y在MATLAB中调用类似于import x.y(但是不要这样导入import py.*,这样的话,Python将覆盖MATLAB中的同名函数),当不再需要import x.y导入的函数时,要执行语句clear import进行清空。

下面是MATLAB官方文档中的例子:

方法一与方法二可以进行对比

2016a支持的python版本 matlab matlab支持python语言吗_第三方模块_06

3、这个是在MATLAB中调用Python的官方帮助文件Call Python Libraries,里面有详细的帮助信息。

4、以上内容全部来自Call Python Libraries,我只是用自己的话大致总结了一下自己所看的而已。

5、这是个MATLAB与Python对应函数的网页,以帮助那些熟悉其一又要学另一语言的朋友