python版本和Matlab版本对应的关系,python调用matlab
调用的话参考
https://blog.csdn.net/m0_37316917/article/details/90256563
https://zhuanlan.zhihu.com/p/67127872
注意的是python和matlab版本有对应关系,我下载了matlab2010和2014,前者没有engines文件夹,后者只支持python2.7和3.3!
已知matlab2017b支持python3.6 ~下载对应破解版,安装matlab后再参考调用的文章.
环境:Windows10,Matlab R2018,Pycharm
1. 安装
新建python工程,工程目录为 E:\untitled Matlab为Python提供了专门的Matlab引擎,在Pycharm中打开Terminal,定位到Matlab引擎所在的目录:
Pycharm的Terminal位于界面的左下角,与Anaconda Prompt具有相同的功能,可以执行pip命令
本人的目录为 F:\matlab\extern\engines\python,其中extern前是matlab安装目录,后续是固定目录 输入python setup.py install
安装Matlab引擎
2. 导入Matlab引擎与使用
输入如下命令导入matlab.engine :
import matlab
import matlab.engine
matlab函数在python调用中,首先需要启动一个engine,通过engine去启动matlab函数,也可以启动多个引擎来,启动多个计算,也可以使用非同步启动等方式,这些在官网中都有说明: [https://ww2.mathworks.cn/help/matlab/matlab_external/start-the-matlab-engine-for-python.html]
engine = matlab.engine.start_matlab() #启动matlab
(1)调用matlab系统函数
engine.sqrt(matlab.double([1.,2.,3.,4.,5.]))
(2)调用m文件
在工程目录(python源程序文件同目录)下新建matlab源程序文件,具体如下:
matlab源程序文件与python源程序文件处于同一目录下即可
文件名为test01.m,写入如下代码:
function a=test01(a,b)
a=0.5*(a+b)
python中调用:
engine.test01(1.,2.)
- 注意事项
(1)数据类型差异 engine传入时,需要将python的数据类型转换成matlab可用。 以常用的numpy数组为例: a = np.array([[1,2],[3,4]])
,传入时需要使用matlab.double(a.tolist)
的形式, 同时engine的输出也是matlab对象,需要进行一定的处理。
测试代码如下:
a = np.array([[1,2],[3,4]])
b = np.array([[1,1],[1,1]])
c = np.array(engine.test01(matlab.double(a.tolist()),matlab.double(b.tolist()),nargout=1))
print(c)
(2)返回值个数
如上述代码中nargout=1,对应test01函数返回值个数,默认为1个,0个或多个返回值需要对应修改,否则会报错
(3)资源回收
engine.exit()
运行结果附图:
结合调用m文件、输入数据转换、返回值个数控制与输出数据转换
python版本和Matlab版本对应的关系,python调用matlab相关推荐
- c 调用matlab文件路径,C/C++下调用matlab函数操作说明
1.matlab的安装 连接:http://pan.baidu.com/s/1qXuF7aO 安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安 ...
- vc只能调用matlab子函数,Vc++6.0调用matlab的数学库函数
Vc++6.0调用matlab的数学库函数 前段时间在摸索如何在VC++6.0当中调用Matlab的里的数学库函数.当时弄得我很是郁闷,现在想想,自已走了很多弯路,原来,是如些的简单.所以,与出来和大 ...
- matlab斜杠报错,java调用matlab 时出现java.lang.NullPointerException错误
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...
- matlab 职坐标,C#编程怎么调用MATLAB的动态链接库?
本文主要向大家介绍了C#编程怎么调用MATLAB的动态链接库?,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. ? ? 最近在用C# 做一个程序,可以实时显示心电波形.大家都知道在采集心电 ...
- matlab 求x y关系,怎么用MATLAB建立数据间的函数关系
可以使用Matlab自带的sftool工具箱,来拟合.举例说明其求解方法: 在命令窗口下,输入 >> x=[565.454 562.058 561.39 563.782 567. 941 ...
- matlab 文件标签栏隐藏,如何在调用MATLAB的dir函数后过滤隐藏文件
您可以组合 DIR和 FILEATTRIB来检查隐藏文件. folder = uigetdir('please choose directory'); fileList = dir(folder); ...
- Faster R-CNN的安装及测试(Python版本和Matlab版本)
rbg的Python版本 一.拉取源码 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 拉取完成后,在/h ...
- 一文读懂如何用python调用matlab函数(windows环境)
第一步配置环境: 要安装引擎 API,请在操作系统提示符下执行以下命令,其中 matlabroot 是 MATLAB 文件夹的路径.您可能需要管理员权限才能执行这些命令.或者,使用在非默认位置安装用于 ...
- 实现python调用Matlab的.m文件
------------------------------------------------------------------------------------------------- 本文 ...
- Windows编程之调用Matlab
一.选择matlab: 注意.Matlab的安装需要较长时间,建议本拓展在同学们自己的电脑上运行. Matlab是大多数工科学生必修的科目,是一个口碑极佳的数学计算工具,可以支持立即运算和程序设计两种 ...
最新文章
- 东田纳西州立大学计算机排名,2019东田纳西州立大学世界排名
- css text top,text-align属性(css中文本对齐属性)
- 应用Rational 工具简化基于J2EE的项目(二)启动项目
- 分类系列之感知器学习算法PLA 和 口袋算法Pocket Algorithm
- 数据查询分页显示的优化方法
- CF1131 G. Most Dangerous Shark (单调栈优化dp)
- 多层RNN的定义与理解
- for循环、while循环、break跳出循环、continue结束本次循环、exit退出脚本
- ASM 转自三思笔记
- 数据库模糊查询日期字段
- python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
- 斗地主 -(一) 如何开发斗地主
- iOS马甲包开发招式及规避4.3方法合集
- 斐波那契数列 Java实现
- AWS之(2) RDS数据库新建
- Mysql数据库的分离和附加
- 2021-05-03
- JESD204协议理解
- Android开发之多级下拉列表菜单实现(仿美团,淘宝等)
- Linux 里的 exFAT 是微软的“特洛伊木马”
热门文章
- 5,10,15,20-四(3,5-二甲氧基苯基)卟啉((TdmPP)H2)/2-硝基-5,10,15,20-四(3,5-二甲氧基苯基)卟啉铜(NO2TdmPP)Cu)齐岳供应
- 29、光敏电阻ADC输入实验
- Java里面的同步和异步
- FileReader和FileOutputStream
- 计算KL距离的几个例子
- Jedis使用lua脚本完成令牌桶限流
- 《计算机网络技术》第三章课后习题答案(全)
- 实施 ORM 的两项要旨:泛型和反射
- 绿芯GreenChip电容式触控触摸IC型号性能介绍
- qrc文件的使用方法