广告
返回顶部
首页 > 资讯 > 后端开发 > Python >[python][matlab]使用py
  • 187
分享到

[python][matlab]使用py

pythonmatlabpy 2023-01-30 23:01:55 187人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用PyTorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划。之前的做法是用Python脚本耦合其

问题引入

在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用PyTorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划。之前的做法是用Python脚本耦合其联系,两者通信的方式是通过文件。后来发现matlab有针对于python的api引擎,瞬间感觉打开了新世界的大门,只需要在python中调用相关的api,就可以完成matlab的工作,再也不用一个一个复制文件了。

解决思路

首先,我安装的是matlab R2015b,对应的python版本为3.4,本来一开始的版本是python36,但是由于matlab2015并不兼容py36,解决方法是,一方面可以通过重新安装高版本的matlab来解决,在高版本的matlab中已经使用了py36的接口。另一方面可以通过修改python版本来实现,通过anconda,可以很简便地安装一个新的py版本,具体的使用情况可以查看conda的帮助文档。

 

1. 安装matlab engine的py package

在matlab的官方帮助文档里:https://ww2.mathworks.cn/help/matlab/matlab_external/install-the-matlab-engine-for-python.html,可以找到

cd "matlabroot/extern/engines/python"
python setup.py install

  即切换到对应matlab的engines目录,然后运行安转脚本。需要注意的是,在安装之前需要切换py版本到3.4,否则默认是base的python,那样会出现错误。

2. 在py脚本里调用matlab engine

在matlab 文档 里Https://ww2.mathworks.cn/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html,声明了对应的matlab engine的启动和使用,其中包含了matlab数据和python数据类型的对应关系。

在文档https://ww2.mathworks.cn/help/matlab/matlab_external/call-matlab-functions-from-python.html里,可以更详细地看到如何使用matlab engine:

import matlab.engine
eng = matlab.engine.start_matlab()
tf = eng.isprime(37)
print(tf) #True

 上述的例子是调用了matlab'的判断素数的接口,首先需要在py文件里导入对应的matlab engine包,然后调用start_matlab()来启动引擎,然后使用引擎来得到返回值,需要注意的是,eng下的函数调用不会有提示,需要参照matlab的接口。

上述的是有返回值的调用,当函数具有多个返回值时,那么对应的调用方式如下:

import matlab.engine
eng = matlab.engine.start_matlab()
t = eng.GCd(100.0,80.0,narGout=3)
print(t)

 注意当使用具有多个返回值函数的时候,会返回一个python cell,对于含有矩阵的数据,会转换成python的list数据。

当函数没有返回值时,需要使用以下的方式调用:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.doc(nargout=0)

  即要声明nargout=0,此时函数不会返回任何参数,如果不声明,就会报错。

3. 在python脚本里调用matlab脚本

该文档的帮助信息在https://ww2.mathworks.cn/help/matlab/matlab_external/call-user-script-and-function-from-python.html,可以看到有两种方式的调用1.直接调用2.调用函数

如果是直接的脚本,比如在triarea.m里写下以下内容:

b = 5;
h = 3;
a = 0.5*(b.* h)

  那么在python里就可以直接调用:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)

  就会得到py的打印输出,a=7.5000,这是因为虽然无返回值,但是matlab的输出仍然会显示在py里。当然更方便的方法是调用函数的形式,生成以下的文件:

function a = triarea(b,h)
a = 0.5*(b.* h);

  在python中执行以下的调用:

ret = eng.triarea(1.0,5.0)
print(ret)

  就会得到2.5,需要注意的是,该函数仅返回一个值,因此无需指定nargout的值。

--结束END--

本文标题: [python][matlab]使用py

本文链接: https://www.lsjlt.com/news/181309.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • [python][matlab]使用py
    问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划。之前的做法是用python脚本耦合其...
    99+
    2023-01-30
    python matlab py
  • python : html 调用本地py
    show_python.html <!DOCTYPE html> <html> <head> <meta charset="gb2312"> <title>p...
    99+
    2023-01-31
    python html py
  • pypy -- 用python实现的py
    pypy 分为两部分:一个 python 的实现 和 一个编译器: pypy provides infrastructure for building interpreters in [r]python. This infrastructu...
    99+
    2023-01-31
    pypy python py
  • Python包中__init__.py文件怎么使用
    这篇文章主要讲解了“Python包中__init__.py文件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python包中__init__.py文件怎么使用”吧!一、__init_...
    99+
    2023-07-02
  • 如何在python中使用matlab库
    这期内容当中小编将会给大家带来有关如何在python中使用matlab库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P...
    99+
    2023-06-14
  • Python数据分析:案例实操:使用Py
    Python爬虫太火了,没写过爬虫,都不敢说自己学过Python?! 可是刚一开始学,我就遇到了难题----数据分析!听起来很高大上,有没有? 想要做爬虫,就得先学会使用数据分析工具,制作图表这是最基本的。网上发现一个讲Pytho...
    99+
    2023-01-31
    案例 数据 Python
  • 59个Python使用技巧,从此你的Py
    今天给大家分享几个Python使用的小技巧,原文来自于Python 技巧总结,进行了细微的调整,感谢作者!之前我们这样操作:i = 0for item in iterable: print i, item i += 1现在我们这样操作:fo...
    99+
    2023-01-31
    使用技巧 Python Py
  • anaconda使用python2与py
    0. 建议安装anaconda为:基于python3的版本 1. 安装后,打开软件,在environment中创建python2:如下图 2. 其中base是基于python3,python27中的是python2 3. 如何下载基于p...
    99+
    2023-01-31
    anaconda py
  • 在python中使用MATLAB的绘图功
    一、二维制图 1. 相信使用过MATLAB的朋友都知道,二维曲线的绘制(plot命令)可以画出具有相同向量长度的(X,Y),如果X,Y 的长度不一致,使用plot命令时就会报错。 在python中,导入numpy模块可以实现基本数学函数的...
    99+
    2023-01-31
    python MATLAB
  • 怎么使用auto-py-to-exe打包Python脚本
    这篇文章主要介绍了怎么使用auto-py-to-exe打包Python脚本的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用auto-py-to-exe打包Python脚本文章都会有所收获,下面我们一起来看...
    99+
    2023-07-06
  • python中怎么调用py文件
    在python中调用py文件的方法:1.新建python项目;2.导入sys模块;3.使用sys.path.append()方法存放文件路径;4.通过import方法调用文件;具体步骤如下:首先,打开python,并新建一个python项目...
    99+
    2022-10-16
  • Python中__init__.py文件的作用
    目录1 init文件夹图标2 init.py导入包方式2.1 单个导入2.2 批量引入(定义__all__用来模糊导入)3 实例4 其他常见问题4.1 使用__init__.py文件...
    99+
    2022-11-11
  • Python制作小软件——3. 利用Py
    本篇博客衔接前面两篇博客: Python制作小软件——1. 安装并使用PyQt5进行界面设计、Python制作小软件——2. 实现界面中的退出功能。 本文将介绍如何使用Python编写后端的代码,实现我们前面做好的界面中的功能。...
    99+
    2023-01-31
    软件 Python Py
  • 使用Sublime Text 3作为Py
     Sublime Text 3是一款非常好用的编辑器,用它作为Python编辑器时,需要解决中文支持问题,常见问题有两个,一是中文乱码问题,二是运行时Python控制台不能输出中文。一、中文乱码问题    1.大家如果是在官网下载的Subl...
    99+
    2023-01-31
    Sublime Text Py
  • 如何使用Python将py文件编译为exe文件
    这篇文章将为大家详细讲解有关如何使用Python将py文件编译为exe文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前提是已经安装了Python环境。在PyCharm内下载安装pyinstalle库或...
    99+
    2023-06-29
  • Python中__init__.py文件的作用详解
    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。 通常__init__.py 文件为空,但是我们还可以为它增加其他...
    99+
    2022-06-04
    详解 作用 文件
  • 如何通过web3.py用Python存取Ethereum
    这篇文章主要介绍了如何通过web3.py用Python存取Ethereum的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何通过web3.py用Python存取Ethereum文章都会有所收获,下面我们一起来看...
    99+
    2023-07-06
  • jupyternotebook如何使用matlab
    目录jupyter notebook使用matlab1.MATALB安装python2.安装matlab_kernel3.运行jupyter notebook中matlabjupyt...
    99+
    2023-01-04
    jupyter notebook使用matlab jupyter notebook matlab notebook使用matlab
  • 如何将matlab数据导入到Python中使用
    相信不少小伙伴都遇到过和我一样的问题,就是在尝试使用scipy.io.loadmat将matlab类型的数据导入python中的时候遇到如下错误提示。 import scipy as...
    99+
    2022-12-15
    matlab数据导入到Python中使用 matlab导入Python
  • python使用minimize() 函数替代matlab的fmincon函数
    目录1. matlab 中的 fmincon() 函数基本语法实例2. python中的minimize()函数minimize函数的寻找参数minimize求解约束函数最小值1. ...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作