Python with MATLAB
原文:Python with MATLAB - 知乎 (zhihu.com)
我问来自俄罗斯的实习生,你对网上争辩MATLAB和Python谁好谁坏有什么看法。实习生表示他不会Python,但是只要能完成老板布置的工作,哪个语言都无所谓。再说了,MATLAB从R2014b开始就可以
了。
我问,为什么要从MATLAB里面调用Python啊?
他说,Python的某些库比MATLAB要好用,比如做网页解析的BeautifulSoup,MATLAB里面虽然有轻量级的webread和xmlread之类的函数,但是无法和BeautifulSoup提供的功能相比。今天就请他为大家展示下如何在MATLAB中调用Python的BeautifulSoup进行网页的解析。
首先我们需要确定你的电脑已经安装了Python,unix系统应该都自带
>>pyversion
version: '2.7'
executable: '/usr/bin/python'
library: '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib'
home: '/System/Library/Frameworks/Python.framework/Versions/2.7'
isloaded: 0
如果没有可以参考官方文档,安装Python
接下来就可以直接调用Python自带的库啦,可以参见官方文档
现在,我们安装第三方的BeautifulSoup库,点这里下载
我们选择的是当前最新的4.4.1版本,下载解压后,在系统console/shell中进行安装
sudo python setup.py install
完成,现在就可以在MATLAB中享受bs4.BeautifulSoup啦!
>>htmlPage = webread('http://zhuanlan.zhihu.com/matlab');
>>soup = py.bs4.BeautifulSoup(htmlPage);
如果你想要打包你的程序让别人也能使用,可以做如下几件事
-
找到第三方Python库的egg包,比如我的BeautifulSoupzhu在了
/Library/Python/2.7/site-packages/beautifulsoup4-4.4.1-py2.7.egg
2.把egg文件放入到方便的位置,比如和程序同目录下
3.将egg文件加入MATLAB的python path.
% Import beautifulsoup from current directory
P = py.sys.path;
if count(P,'bs4') == 0
utilpath = fileparts(mfilename('fullpath'));
insert(P,int32(0),fullfile(utilpath,'beautifulsoup4-4.4.1-py2.7.egg'));
end
htmlPage = webread('http://zhuanlan.zhihu.com/matlab');
soup = py.bs4.BeautifulSoup(htmlPage)
4.将你的程序和egg文件一起打包送出,让别人去争MATLAB好还是Python好吧!
说完实习生就走了,然而他忘记了展示如何使用BeautifulSoup, 后来再问他的时候,他说
我不会Python
I speak MATLAB
~完~