用惯Python的你,是不是早已无法忍受matplotlib那丑陋无比的图以及蛋疼无比部署依赖?

当当当当,Matlab2014b的Python Engine API现已加入豪华午餐。

上次写了一篇文章,讲用C++调用Matlab的绘图引擎,不过呢有句话怎么说来着?人生苦短,我用Python。

这次就说一说怎么用Python调用Matlab的引擎。Python大法好,这个可比C++要容易太多了。

过程非常简单,第一步是安装,假设Matlabroot是Matlab的安装根目录

找到你的Matlab安装根目录,然后Shell进入matlabroot\extern\engines\python目录中,执行

python setup.py install

完事了。注意,一定要用管理员权限执行。

不用管理员权限的安装方法稍微复杂一点点:

cd "matlabroot\extern\engines\python"

python setup.py build --build-base builddir install --install-base installdir

将installdir添加到Python的包搜索路径中,再加入到PYTHONPATH环境变量中即可。

Matlab的Python引擎怎么用呢? 更简单了:

import matlab.engine 就可以开始了。

然后是一段测试用的Python脚本:

importmatlabimportmatlab.engineimporttimedefbasic_test(eng):print "Basic Testing Begin"

print "eng.power(100,2) = %d"%eng.power(100,2)print "eng.max(100,200) = %d"%eng.max(100,200)print "eng.rand(5,5) ="

print eng.rand(5,5)print "eng.randi(matlab.double([1,100]),matlab.double([3,4]))"%\

eng.randi(matlab.double([1,100]),matlab.double([3,4]))print "Basic Testing Begin"

defplot_test(eng):print "Plot Testing Begin"eng.workspace['data'] =\

eng.randi(matlab.double([1,100]),matlab.double([30,2]))

eng.eval("plot(data(:,1),'ro-')")

eng.hold('on',nargout=0)

eng.eval("plot(data(:,2),'bx--')")print "Plot testing end"

defaudio_test(eng,freq,length):print "Audio Testing Begin"eval_str= "f = %d;t=%d;"%(freq,length)

eng.eval(eval_str,nargout=0)

eng.eval('fs = 44100;T=1/fs;t=(0:T:t);',nargout =0)

eng.eval('y = sin(2 * pi * f * t);',nargout =0)

eng.eval('sound(y,fs);',nargout =0)

time.sleep(length)print "Audio Testing End"

deffourier_test(eng):pass

defdemo(eng):

basic_test(eng)

plot_test(eng)

audio_test(eng,680,1)if __name__ == "__main__":print "Initializing Matlab Engine"eng=matlab.engine.start_matlab()print "Initializing Complete!"demo(eng)print "Exiting Matlab Engine"

print "Press Any Key to Exit"raw_input();

eng.quit()print "Bye-Bye"

比起C++ Engine的API,Python Engine的最牛逼之处就是可以直接以原生的形式调用Matlab内建函数,而不是用Eval方法。当然,如果你想用也是一点问题都没有的。同时,变量的存取再也不用和一堆mxArray以及它们的ADT打交道了,直接以字典的形式对engine.workspace进行存取即可。显然比C++的调用方式更为科学。

下面的可以做一个备忘Sheet

###Matlab Engine for Python

#Call Matlab Function from Python

------------------------------

##Step 1: Installation

#Install with Administrator Privileges

cd "matlabroot\extern\engines\python"

python setup.py install

#Install without Administrator Privileges

cd "matlabroot\extern\engines\python"

python setup.py build --build-base builddir install --install-base installdir

Include 'installdir' in the search path for Python packages

Add 'installdir' to the PYTHONPATH environment variavle

------------------------------

##Step 2: Using Matlab Engine

#Start and quit

import matlab.engine

eng = matlab.engine.start_matlab()

eng.quit()

#Call Matlab Functions:

#Just call with form eng.xxx()

#the function xxx should in the namespace of matlab.

#Asynchronously Call

import matlab.engine

eng = matlab.engine.start_matlab()

future = eng.sqrt(4.0,async=True)

ret = future.result()

print(ret)

#WorkSpace Usage:

import matlab.engine

eng = matlab.engine.start_matlab()

eng.workspace['y'] = x

a = eng.eval('sqrt(y)')

print(a)

#Skills for unsupported features in python

#eng.eval()

import matlab.engine

eng = matlab.engine.start_matlab()

eng.eval("T = readtable('patients.dat');",nargout=0)

#Plot With Matlab:

import matlab.engine

eng = matlab.engine.start_matlab()

data = eng.peaks(100)

eng.mesh(data)

------------------------------

python调用matlab环境配置、非常详细!!!_Python调用Matlab2014b引擎相关推荐

  1. python调用matlab环境配置、非常详细!!!_[python][matlab]使用python调用matlab程序

    问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划 ...

  2. Python调用matlab及其配置方法

    Python调用matlab及其配置方法 - 知乎 从 Python 调用 MATLAB 函数的三种方法_wx60c0d572c0d91的技术博客_51CTO博客

  3. ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...

  4. Python selenium chrome 环境配置

    Python selenium chrome 环境配置一.参考文章:1. 记录一下python easy_install和pip安装地址和方法http://heipark.iteye.com/blog ...

  5. Node介绍及环境配置~超级详细哦

    下面是对Node介绍及环境配置的详细整理,希望可以帮助到有需要的小伙伴~ 文章目录 Node开发概述 学服务器开发的原因 服务端开发要做的事情 为什么选Node Node是什么 Node运行环境搭建 ...

  6. Python灰帽子环境配置

    关于Python灰帽子里面的python代码运行环境配置,需要安装python2.7.x,自行到http://www.python.org下载. 我配置好环境后,把用到的库和pydbg需要替换的文件, ...

  7. python安装及环境配置

    Python--python安装及环境配置 Python安装 Windowns操作系统中安装Python 步骤一 下载安装包 从Python网站https://www.python.org/downl ...

  8. Windows10系统下MPI编程环境配置(超级详细)

    Windows10系统下MPI编程环境配置(超级详细) 1.MS-MPI下载 进入官网下载MPI文件,下载地址: https://www.mpich.org/ 下拉到最底部,点击Microsoft W ...

  9. java环境教程_java环境配置的详细教程(图文)

    本篇文章给大家带来的内容是关于java环境配置的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JAVA环境变量的配置:Path,JAVA_HOME,CLASSPAT ...

最新文章

  1. java 定义一组常量用什么最好_Java语言中定义常量注意事项解析
  2. 如何处理几十万条并发数据_Swoole 如何处理高并发以及异步 I/O 的实现
  3. php 取消页面一些样式,jquery如何去除样式
  4. 信息学奥赛一本通C++语言——1110:查找特定的值
  5. 针对视觉位姿估计特征点优化问题的详细研究
  6. 【Flink】flink Kafka报错 : Failed to send data to Kafka: This server is not the leader for that topic-pa
  7. CentOS7系列离线安装指定软件及升级系统
  8. 点对点信道互连以太网实验_轩辕实验室┃SOTIF:汽车以太网容错能力测试(1)...
  9. 音视频——Codec初始化及Omx组件创建
  10. 【Windows】手机远程控制电脑
  11. Android之自定义一个可播放某一时间段的音乐播放器
  12. Vue回炉重造之图片加载性能优化
  13. 2016年年终报告总结
  14. Step7中有关时间和定时器的使用和例程2
  15. E/WindowManager: android.view.WindowLeaked: Activity com.xxx.xxx.xxx has leaked window com.android.i
  16. 球面经纬度坐标转换为空间直角坐标
  17. 微服务-分布式事务seata
  18. java实现求最小公倍数_使用Java代码进行因数分解和求最小公倍数的示例
  19. 扒勒索病毒史,聊真CDP与准CDP
  20. 微信公众账号与网站信息对接

热门文章

  1. pythonexcel表格教程_python对excel表格的操作
  2. 前端ui框架_跨屏建站发布同名响应式前端ui框架
  3. Gibbs sampling [Gibbs采样]
  4. ECCV 2018 DSLT:《Deep Regression Tracking with Shrinkage Loss》论文笔记
  5. BZOJ 4006 Luogu P3264 [JLOI2015]管道连接 (斯坦纳树、状压DP)
  6. luogu P4512 多项式除法 (模板题、FFT、多项式求逆)
  7. 固定资产拆分比例怎么计算_持有的基金要被份额拆分?对收益有影响吗?
  8. 自动阈值检测_金融科技讲堂之三|金融企业如何在大数据中进行异常检测(一)...
  9. mysql查询条件字段值末尾有空格的问题
  10. 深度理解python中的元类