Python调用Matlab

Python调用Matlab

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

一、python安装matlab
找到Matlab安装根目录,比如D:\matlab,然后进入D:\matlab\extern\engines\python目录中,然后打开然后用管理员权限打开cmd,执行cd D:\matlab\extern\engines\python,然后在执行python setup.py install
二、使用方法
1.1、调用matlab()(默认是同步的)
默认情况下,该引擎同步调用MATLAB函数。控件只有在MATLAB函数完成时才返回Python。但是该引擎也可以异步调用函数。控件在MATLAB仍在执行该函数时立即返回Python。引擎将结果存储在Python变量中,该变量可以在函数完成后进行检查。
在这里插入图片描述
1.2、异步调用matlab
(与同步调用不同于多了一行eng = future.result的代码)
在这里插入图片描述
2、调用自定义函数
调用脚本和自定义函数的过程也几乎一样,也是从变量engine中去调用。值得注意的是,需要保证你的函数或脚本就在当前的工作路径下,否则engine会找不到文件而报错。
在这里插入图片描述
3、变量兼容性问题
使用时有时会遇到很多变量类型不正确这样的提示,因为MATLAB函数对于输入数据的类型有着比较严格的要求,比如log2对于int8类型输入就会报错。double类型是MATLAB里面用得最多的数据型,所以一般可以将python的数据转成MATLAB兼容的double类型来解决问题。举个例子,Python的list类型变量只需加上matlab.double就可以完成转换。
在这里插入图片描述
4、从 MATLAB 函数返回多个输出参数
调用gcd函数,它会返回3个参数。(默认返回一个,不返回值为0)
在这里插入图片描述

参考资料:
1、https://www.cnblogs.com/Key-Ky/p/9012814.html
2、https://ww2.mathworks.cn/help/matlab/apiref/matlab.engine.start_matlab.html#bu4yhqc
https://ww2.mathworks.cn/help/matlab/apiref/matlab.engine.futureresult-class.html
https://ww2.mathworks.cn/help/matlab/apiref/matlab.engine.matlabengine-class.html#bukig7r-6
3、https://blog.csdn.net/qq_27262673/article/details/79635924

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值