调用的话参考

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. 注意事项

(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相关推荐

  1. c 调用matlab文件路径,C/C++下调用matlab函数操作说明

    1.matlab的安装 连接:http://pan.baidu.com/s/1qXuF7aO 安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安 ...

  2. vc只能调用matlab子函数,Vc++6.0调用matlab的数学库函数

    Vc++6.0调用matlab的数学库函数 前段时间在摸索如何在VC++6.0当中调用Matlab的里的数学库函数.当时弄得我很是郁闷,现在想想,自已走了很多弯路,原来,是如些的简单.所以,与出来和大 ...

  3. matlab斜杠报错,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  4. matlab 职坐标,C#编程怎么调用MATLAB的动态链接库?

    本文主要向大家介绍了C#编程怎么调用MATLAB的动态链接库?,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. ? ? 最近在用C# 做一个程序,可以实时显示心电波形.大家都知道在采集心电 ...

  5. matlab 求x y关系,怎么用MATLAB建立数据间的函数关系

    可以使用Matlab自带的sftool工具箱,来拟合.举例说明其求解方法: 在命令窗口下,输入 >> x=[565.454 562.058 561.39 563.782 567. 941 ...

  6. matlab 文件标签栏隐藏,如何在调用MATLAB的dir函数后过滤隐藏文件

    您可以组合 DIR和 FILEATTRIB来检查隐藏文件. folder = uigetdir('please choose directory'); fileList = dir(folder); ...

  7. Faster R-CNN的安装及测试(Python版本和Matlab版本)

    rbg的Python版本 一.拉取源码 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 拉取完成后,在/h ...

  8. 一文读懂如何用python调用matlab函数(windows环境)

    第一步配置环境: 要安装引擎 API,请在操作系统提示符下执行以下命令,其中 matlabroot 是 MATLAB 文件夹的路径.您可能需要管理员权限才能执行这些命令.或者,使用在非默认位置安装用于 ...

  9. 实现python调用Matlab的.m文件

    ------------------------------------------------------------------------------------------------- 本文 ...

  10. Windows编程之调用Matlab

    一.选择matlab: 注意.Matlab的安装需要较长时间,建议本拓展在同学们自己的电脑上运行. Matlab是大多数工科学生必修的科目,是一个口碑极佳的数学计算工具,可以支持立即运算和程序设计两种 ...

最新文章

  1. 东田纳西州立大学计算机排名,2019东田纳西州立大学世界排名
  2. css text top,text-align属性(css中文本对齐属性)
  3. 应用Rational 工具简化基于J2EE的项目(二)启动项目
  4. 分类系列之感知器学习算法PLA 和 口袋算法Pocket Algorithm
  5. 数据查询分页显示的优化方法
  6. CF1131 G. Most Dangerous Shark (单调栈优化dp)
  7. 多层RNN的定义与理解
  8. for循环、while循环、break跳出循环、continue结束本次循环、exit退出脚本
  9. ASM 转自三思笔记
  10. 数据库模糊查询日期字段
  11. python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能
  12. 斗地主 -(一) 如何开发斗地主
  13. iOS马甲包开发招式及规避4.3方法合集
  14. 斐波那契数列 Java实现
  15. AWS之(2) RDS数据库新建
  16. Mysql数据库的分离和附加
  17. 2021-05-03
  18. JESD204协议理解
  19. Android开发之多级下拉列表菜单实现(仿美团,淘宝等)
  20. Linux 里的 exFAT 是微软的“特洛伊木马”

热门文章

  1. 5,10,15,20-四(3,5-二甲氧基苯基)卟啉((TdmPP)H2)/2-硝基-5,10,15,20-四(3,5-二甲氧基苯基)卟啉铜(NO2TdmPP)Cu)齐岳供应
  2. 29、光敏电阻ADC输入实验
  3. Java里面的同步和异步
  4. FileReader和FileOutputStream
  5. 计算KL距离的几个例子
  6. Jedis使用lua脚本完成令牌桶限流
  7. 《计算机网络技术》第三章课后习题答案(全)
  8. 实施 ORM 的两项要旨:泛型和反射
  9. 绿芯GreenChip电容式触控触摸IC型号性能介绍
  10. qrc文件的使用方法