matlab调用python的各种方法详解

这篇具有很好参考价值的文章主要介绍了matlab调用python的各种方法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

matlab调用python的各种方法详解

在MATLAB中,可以使用py函数来调用Python模块和函数。在此基础上,我们可以很轻易的调用python中的各种模块,方便我们在神经网络上的应用仿真。

以下是使用MATLAB调用Python模块的基本步骤:

  1. 确保你的系统已经正确安装了Python,并且将Python添加到了系统的环境变量中。

  2. 在MATLAB命令窗口中,使用pyversion命令检查MATLAB当前使用的Python版本。确保它是你希望调用的Python版本。

  3. 使用py.module_name语法来引入Python模块。module_name是你要调用的Python模块的名称。

  4. 调用Python模块中的函数或方法。使用.操作符来访问模块中的函数和方法。

1 调用自定义python函数

% 添加函数模块路径, 如果路径不在则搜索不到
py.sys.path().append('fun/to/path')

mymod = py.importlib.import_module('py_name')  % 不要带py后缀,不然报错
a = mymod.print_num(1)
disp(a)

例子

# num.py

def print_num(num):
   return num
% 添加函数模块路径, 如果路径不在则搜索不到
py.sys.path().append('fun/to/path')

mymod = py.importlib.import_module('num')  % 不要带py后缀,不然报错
a = mymod.print_num(1)
disp(pwd)
disp(a)

matlab调用python函数,python,matlab,开发语言

2 访问 Python 内置模块

要访问 Python 库,请在 Python 名称前添加 py. 前缀。
访问math模块:

% 引入Python模块
% py.math;

% 调用Python模块中的函数
result = py.math.sqrt(4);
disp(result);  % 显示结果

matlab调用python函数,python,matlab,开发语言
调用list、textwrap:

a = py.list({'This','is a','list'});
disp(a);

b = py.textwrap.wrap('This is a string');
disp(b);

matlab调用python函数,python,matlab,开发语言

3 从 MATLAB 运行python脚本

3.1 PYRUNFILE(FILE)

PYRUNFILE(FILE) 执行 Python 脚本文件 FILE,它可以被提供为标量字符串、cellstr 或 char 数组。 FILE 必须指定绝对路径或相对路径-相对于当前工作目录,扩展名为“.py”的文件的路径。如果脚本文件需要任何命令行参数,则可以通过提供它们在要执行的文件路径之后的 FILE 中,由空格字符分隔。

格式
% 返回值的
pyrunfile("fun.py")
例子
# 定义num.py的函数

def print_num(num=1):
  print("执行print_num函数")
  return num

if __name__ == "__main__":
  b = print_num(3)
  print("hello world!")
 

matlab中调用,命令行窗口可以得到print打印出的值:

% a string, cellstr or a char array
% 添加当前python的文件路径
py.sys.path().append('fun/to/path')

% 调用这个函数
pyrunfile("num.py")

matlab调用python函数,python,matlab,开发语言

3.2 [ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS)

[ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS) 执行文件并返回任何变量由 Python 生成到 MATLAB,通过指定 Python 变量的名称在 OUTPUTS 中并在 OUTVARS 中捕获返回值。 可以提供输出作为字符串、cellstr 或 char 数组。

格式
% 返回值的
out_vulue = pyrunfile("fun.py", "var_nam")
例子
# num.py

def print_num(num=1):
  return num

if __name__ == "__main__":
  b = print_num(3)

matlab中调用,这里不需要导入这个函数,程序会自动搜索这个函数:

% a string, cellstr or a char array
% 添加当前python的文件路径
py.sys.path().append('fun/to/path')

% 调用这个函数
myListFile = pyrunfile("num.py", "b")

matlab调用python函数,python,matlab,开发语言
denominator分母,imag虚部,real实部,numerator分子

获取更多的返回变量
# 已经定义的num.py

def print_num(num=1):
  c = 1
  print("执行print_num函数")
  return num

if __name__ == "__main__":
  a =  print_num(2)
  b = print_num(3)
  print("hello world!")
 

上面代码中,我们定义了a、b、c三个变量,这是我们都想获取,则可以通过下面的方法:


[a, b, c] = pyrunfile("num.py", ["a", "b", "c"]);

可以发现,a、b的值都成功获取了,但是c没有成功,应为c为在函数print_num中,为零时变量,获取不到。

matlab调用python函数,python,matlab,开发语言
matlab调用python函数,python,matlab,开发语言

3.3 [ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS, varargin{INPUTS})

[ OUTVARS ] = PYRUNFILE(FILE, OUTPUTS, varargin{INPUTS}) 执行文件并返回OUTPUTS, 并将它们分配给 OUTVARS,使用 varargin{INPUTS} 传递的 MATLAB 数据。 varargin{INPUTS} 可用于将 MATLAB 数据传递给 Python 表达式,格式:名称-值对,其中名称是要分配的 Python 变量的名称,并且该值是 MATLAB 数据或可访问工作区中的变量名称。 varargin{INPUTS}只能用于传递可自动转换为python格式的数据。

格式一
% 返回值的
out_vulue = pyrunfile("fun.py argv1 argv2 ...argvn", "var_nam")
例子
# num.py
import sys

def print_num(num=1):
  ans = num+1
  return ans

if __name__ == "__main__":
  arg = sys.argv[1]
  print(type(arg))
  b = print_num(int(arg))
  print(b)

调用

b = pyrunfile("num.py 1", "b");

matlab调用python函数,python,matlab,开发语言

格式二
% 返回值的
out_vulue = pyrunfile("fun.py", "var_nam", arg1=v1, arg2=v2)
例子
# num.py
def print_num(num=1):
  ans = num+1
  return ans

if __name__ == "__main__":
  num1= x
  num2 = y
  a = print_num(num1)
  b = print_num(num2)
  print(a)
  print(b)

调用:

[a, b] = pyrunfile("num.py", ["a", "b"], x=1, y=2);

matlab调用python函数,python,matlab,开发语言文章来源地址https://www.toymoban.com/news/detail-572879.html

到了这里,关于matlab调用python的各种方法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

    (格式化替换,替换,列表字典替换,类格式化, 魔法函数格式化,对齐及填充格式化,format对齐打印) 本篇目录内容: 📘  一、format() 函数的语法 📘  二、format() 函数基本用法 📘  三、用对齐及填充的方式格式化 📘  四、用format函数实现对齐打印 📘  五、其他内容待

    2024年02月07日
    浏览(71)
  • LLM大语言模型(三):使用ChatGLM3-6B的函数调用功能前先学会Python的装饰器

    目录 ChatGLM3-6B的函数调用模式示例 本地启动ChatGLM3-6B工具模式 如何在ChatGLM3-6B里新增一个自定义函数呢? get_weather基于Python的装饰器实现 函数注解@register_tool 现在我们来自定义一个kuakuawo()函数 ChatGLM3-6B目前有三种使用模式: 对话模式 工具模式(也就是本文要介绍的函数调用

    2024年01月25日
    浏览(54)
  • python调用Gemini大模型方法详解(程序及示例效果)

            谷歌Google于12月初正式发布了Gemini大模型,与GPT3.5、GPT4达到了相近效果。除了文本生成之外,Gemini还支持输入图片并进行理解,下文将详细介绍调用方式。当前阶段,Gemini应该有300刀的免费额度,有效期为3个月。每分钟调用次数为60次,而OpenAI免费GPT3.5的限制为每

    2024年01月17日
    浏览(33)
  • 【Python】PySpark 数据计算 ① ( RDD#map 方法 | RDD#map 语法 | 传入普通函数 | 传入 lambda 匿名函数 | 链式调用 )

    在 PySpark 中 RDD 对象 提供了一种 数据计算方法 RDD#map 方法 ; 该 RDD#map 函数 可以对 RDD 数据中的每个元素应用一个函数 , 该 被应用的函数 , 可以将每个元素转换为另一种类型 , 也可以针对 RDD 数据的 原始元素进行 指定操作 ; 计算完毕后 , 会返回一个新的 RDD 对象 ; map 方法 , 又

    2024年02月14日
    浏览(38)
  • Matlab求各种类型数组长度的方法

    在 MATLAB 中,可以使用不同的函数和操作符来求各种类型数组的长度。以下是一些常用的方法: 可以 用于求 一维数组 的长度,例如: 可以 用于求 多维数组的大小 ,返回一个行向量,其中每个元素表示对应维度的大小。如果只需 要求 多 维数 组 的 元素个数 , 可以使用

    2024年02月09日
    浏览(27)
  • C++&Python&C# 三语言OpenCV从零开发(6):边界填充+Csharp调用Python matplotlib代码

    C++PythonCsharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记) 今天来接着学习OpenCV,现在主要是以Python代码为主了,所以先实现Python,在用C++/Csharp重现一遍。 边界填充就是向外填充图片信息,将图片扩大。填充分为上下

    2024年01月23日
    浏览(42)
  • 基于R语言、MATLAB、Python机器学习方法与案例分析

    目录   基于R语言机器学习方法与案例分析 基于MATLAB机器学习、深度学习在图像处理中的实践技术应用 全套Python机器学习核心技术与案例分析实践应用   基于R语言机器学习方法与案例分析 机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,

    2024年02月07日
    浏览(26)
  • Matlab之智能优化算法函数调用

    目录 1.句柄函数 2.遗传算法 3.粒子群算法 4.模拟退火 1.句柄函数         句柄函数即我们要求的目标函数,以下三种算法的调用仅是求解最小值,若要求目标函数的最大值,可在返回结果中加负号。 句柄函数图像:                          画图代码: 2.遗传算

    2024年02月10日
    浏览(27)
  • matlab重名函数调用踩坑记录

    我新安装了matlab的robotics toolbox,然而调用的 rotx 不是我想要的函数。 我上网查了一下资料,知乎和csdn有相关的回答,但是我试了一下还是不行。它们的方法是移除路径再添加路径避免函数的冲突。相关方法放在文末的相关参考 1 2 。 这里建议先用一下相关参考的方法,如果

    2024年02月16日
    浏览(22)
  • 详解Python中的split()函数的使用方法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一、函数说明 1、split()函数 语法:str.split(str=\\\"\\\",num=string.count(str))

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包