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

~完~

相关推荐
我狸才不是赔钱货1 小时前
Python的“环境之殇”:从Venv到Conda的终极抉择
开发语言·python·conda
努力进修1 小时前
Rust 语言入门基础教程:从环境搭建到 Cargo 工具链
开发语言·后端·rust
程序员爱钓鱼2 小时前
Python编程实战 - 函数与模块化编程 - 参数与返回值
后端·python·ipython
程序员爱钓鱼2 小时前
Python编程实战 - 函数与模块化编程 - 局部变量与全局变量
后端·python·ipython
杯莫停丶6 小时前
设计模式之:模板模式
开发语言·设计模式
开发者小天6 小时前
调整为 dart-sass 支持的语法,将深度选择器/deep/调整为::v-deep
开发语言·前端·javascript·vue.js·uni-app·sass·1024程序员节
老猿讲编程7 小时前
C++中的奇异递归模板模式CRTP
开发语言·c++
jiuri_12157 小时前
Docker使用详解:在ARM64嵌入式环境部署Python应用
python·docker·容器
chenchihwen7 小时前
AI代码开发宝库系列:Function Call
人工智能·python·1024程序员节·dashscope