Python with MATLAB

Python with MATLAB

原文:Python with MATLAB - 知乎 (zhihu.com)

我问来自俄罗斯的实习生,你对网上争辩MATLAB和Python谁好谁坏有什么看法。实习生表示他不会Python,但是只要能完成老板布置的工作,哪个语言都无所谓。再说了,MATLAB从R2014b开始就可以

调用Python

了。

我问,为什么要从MATLAB里面调用Python啊?

他说,Python的某些库比MATLAB要好用,比如做网页解析的BeautifulSoup,MATLAB里面虽然有轻量级的webreadxmlread之类的函数,但是无法和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);

如果你想要打包你的程序让别人也能使用,可以做如下几件事

  1. 找到第三方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

~完~

相关推荐
努力学习的小廉28 分钟前
我爱学算法之—— 前缀和(中)
开发语言·redis·算法
面朝大海,春不暖,花不开30 分钟前
Python 文件操作与输入输出:从基础到高级应用
windows·python·microsoft
想带你从多云到转晴1 小时前
02. java: 类与对象
java·开发语言
AI视觉网奇1 小时前
pycharm F2 修改文件名 修改快捷键
ide·python·pycharm
酷爱码1 小时前
Java -jar命令运行外部依赖JAR包的深度场景分析与实践指南
java·python·jar
WilliamCHW1 小时前
Pycharm 配置解释器
ide·python·pycharm
abments1 小时前
基于ReAction范式的问答系统实现demo
开发语言·python
修电脑的猫1 小时前
带有输入的CDS和程序调用
开发语言·lua
圈圈编码2 小时前
悲观锁和乐观锁
java·开发语言·sql·mysql
多多*2 小时前
基于rpc框架Dubbo实现的微服务转发实战
java·开发语言·前端·redis·职场和发展·蓝桥杯·safari