python调用matlab环境配置、非常详细!!!_Python调用Matlab2014b引擎
用惯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引擎相关推荐
- python调用matlab环境配置、非常详细!!!_[python][matlab]使用python调用matlab程序
问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划 ...
- Python调用matlab及其配置方法
Python调用matlab及其配置方法 - 知乎 从 Python 调用 MATLAB 函数的三种方法_wx60c0d572c0d91的技术博客_51CTO博客
- ubuntu18.04 安装qt5.12.8及环境配置的详细教程
这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...
- Python selenium chrome 环境配置
Python selenium chrome 环境配置一.参考文章:1. 记录一下python easy_install和pip安装地址和方法http://heipark.iteye.com/blog ...
- Node介绍及环境配置~超级详细哦
下面是对Node介绍及环境配置的详细整理,希望可以帮助到有需要的小伙伴~ 文章目录 Node开发概述 学服务器开发的原因 服务端开发要做的事情 为什么选Node Node是什么 Node运行环境搭建 ...
- Python灰帽子环境配置
关于Python灰帽子里面的python代码运行环境配置,需要安装python2.7.x,自行到http://www.python.org下载. 我配置好环境后,把用到的库和pydbg需要替换的文件, ...
- python安装及环境配置
Python--python安装及环境配置 Python安装 Windowns操作系统中安装Python 步骤一 下载安装包 从Python网站https://www.python.org/downl ...
- Windows10系统下MPI编程环境配置(超级详细)
Windows10系统下MPI编程环境配置(超级详细) 1.MS-MPI下载 进入官网下载MPI文件,下载地址: https://www.mpich.org/ 下拉到最底部,点击Microsoft W ...
- java环境教程_java环境配置的详细教程(图文)
本篇文章给大家带来的内容是关于java环境配置的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JAVA环境变量的配置:Path,JAVA_HOME,CLASSPAT ...
最新文章
- java 定义一组常量用什么最好_Java语言中定义常量注意事项解析
- 如何处理几十万条并发数据_Swoole 如何处理高并发以及异步 I/O 的实现
- php 取消页面一些样式,jquery如何去除样式
- 信息学奥赛一本通C++语言——1110:查找特定的值
- 针对视觉位姿估计特征点优化问题的详细研究
- 【Flink】flink Kafka报错 : Failed to send data to Kafka: This server is not the leader for that topic-pa
- CentOS7系列离线安装指定软件及升级系统
- 点对点信道互连以太网实验_轩辕实验室┃SOTIF:汽车以太网容错能力测试(1)...
- 音视频——Codec初始化及Omx组件创建
- 【Windows】手机远程控制电脑
- Android之自定义一个可播放某一时间段的音乐播放器
- Vue回炉重造之图片加载性能优化
- 2016年年终报告总结
- Step7中有关时间和定时器的使用和例程2
- E/WindowManager: android.view.WindowLeaked: Activity com.xxx.xxx.xxx has leaked window com.android.i
- 球面经纬度坐标转换为空间直角坐标
- 微服务-分布式事务seata
- java实现求最小公倍数_使用Java代码进行因数分解和求最小公倍数的示例
- 扒勒索病毒史,聊真CDP与准CDP
- 微信公众账号与网站信息对接
热门文章
- pythonexcel表格教程_python对excel表格的操作
- 前端ui框架_跨屏建站发布同名响应式前端ui框架
- Gibbs sampling [Gibbs采样]
- ECCV 2018 DSLT:《Deep Regression Tracking with Shrinkage Loss》论文笔记
- BZOJ 4006 Luogu P3264 [JLOI2015]管道连接 (斯坦纳树、状压DP)
- luogu P4512 多项式除法 (模板题、FFT、多项式求逆)
- 固定资产拆分比例怎么计算_持有的基金要被份额拆分?对收益有影响吗?
- 自动阈值检测_金融科技讲堂之三|金融企业如何在大数据中进行异常检测(一)...
- mysql查询条件字段值末尾有空格的问题
- 深度理解python中的元类