MATLAB\Simulink与python之间相互调用

来源:互联网 发布:sql查询sequence 编辑:程序博客网 时间:2024/05/21 10:04

Matlab-Python相互调用

Python的应用越来越广泛,在深度学习,机器学习,数据挖掘等方面有很大的优势,并且python是开源的有强大的第三方库,这是python的最大优势。但是MATLAB在科学计算方面优化的非常极致,特别是SIMULINK的模块化编程方式非常方便,在实际的应用中经常会需要SIMULINK和python之间频繁的数据交换和调用,这里简单介绍一下MATLAB与python之间的混合编程。本文档所有操作都是在Window10环境下实现的。

一、MATLAB\SIMULINK调用python函数

从 MATLAB2014b 开始,MATLAB支持直接调用Python。我安装的是MATLAB2017b是最新的版本,所以安装完之后能够直接连接到Python,验证MATLAB连接到Python的方法。


我的电脑安装了两个版本的Python,分别是2.7和3.5,默认连接到的是python3.5.也可以手动切换到python2.7版本。


定义python函数为,非常简单的两数求和,文件名称te2,函数名为c2。


在MATLAB中调用python函数,按照py.文件名.函数名(参数)的格式进行函数调用。


参看python的帮助文档。更多用法和例子可以查看帮助文档。文档中包含了两部分,分别是MATLAB调用Python,和Python调用MATLAB.


在SIMULINK中调用python函数,首先我们考虑到将调用python的函数语句,写进MATLAB-Function中。但是这种方式需要将语句声明成外部编译的方式,这样将降低效率,SIMULINK流程图和m函数如下:



再实时仿真的环境中应用python函数,采用S-Function的方式进行调用py语句。采用S-function的方式不需要外部编译的方式,提高了仿真效率。


S-Function为。


以上为通过MATLAB语句和SIMULINK模块对Python函数进行调用。

二、通过Python调用MATLAB

在Python中调用MATLAB有多种方式。这里采用MATLAB提供的引擎进行调用。这种方式对于调用MATLAB中的一些简单语句还是很方便的。


具体操作为,


下面的一个例子,在python中调用MATLAB引擎进行绘图。


更多的细节可以参考官方文档:

https://cn.mathworks.com/help/matlab/matlab-engine-for-python.html

还用很多直接调用matlab的方法参见:

http://www.jianshu.com/p/02fd2ef6f174

 

原创粉丝点击