从 MATLAB 调用 Python 函数

2025年7月25日 | 阅读7分钟

引言

MATLAB和Python是科学计算、数据分析、机器学习等领域最流行的两种语言。当然,MATLAB在数值计算、矩阵处理和数据可视化方面表现出色,而Python则拥有丰富的库和在Web编程、机器学习、数据整理等活动中的多功能性。

MATLAB与Python集成在一起的适应性也帮助用户获得两种软件的优势,对于MATLAB用户,他们可以通过Python庞大的库和函数的生态系统来扩展他们的资源。它还将提供无需外部切换到MATLAB环境即可使用Python所有功能的可能性。

在MATLAB中,Python函数的使用非常直接,因为这些函数可以从MATLAB脚本甚至MATLAB命令窗口调用。这是通过py模块实现的,该模块支持Python代码的执行、其他Python库的使用以及这两种语言之间的数据交换。通过在MATLAB中使用Python函数,他们可以扩展和改进操作,访问额外的Python库,这些库可以分析操作,执行计算和学习计算,包括NumPy、Pandas、Sticking SciPy、TensorFlow等。

接口的重要性

  • 扩展功能:MATLAB对数值和矩阵计算有效;然而,Python为用户提供了更广泛的特定库和工具选择。目前,可以从MATLAB调用Python函数,因此,用户可以享受扩展工具来执行某些任务,例如使用Pandas进行数据整理、使用scikit-learn或TensorFlow进行机器学习、使用NLTK进行自然语言处理等。
  • 访问开源Python库:本文重点介绍五个Python库,这些库在不切换到其他编程语言的情况下无法直接在MATLAB中使用。例如,用于复杂绘图的Matplotlib、用于深度学习的Keras、PyTorch以及用于Web开发的Flask都可以集成到MATLAB中,而无需在平台之间进行传输。
  • 无缝集成:MathWorks还指出,MATLAB扩展了调用Python函数的功能,使用户能够利用Python的数据处理能力和灵活性来增强MATLAB程序和部署方法。如果与可能正在使用Python的其他人合作,或者在管道中使用MATLAB作为工具之一,并且该管道不时使用Python,则这种集成会非常有用。
  • 利用Python的机器学习生态系统:机器学习主要与Python相关联,因为它建立在TensorFlow、Keras、PyTorch和scikit-learn等各种优秀平台之上。通过这种方法,用户可以方便地将这些后源机器学习模型合并到MATLAB项目中,从而在训练、测试和实现阶段实现平稳过渡。
  • 多语言项目中的互操作性:许多当代项目需要多种编程语言来完成不同的任务。从MATLAB调用Python的事实也有助于创建多语言模型。例如,MATLAB可以用于数值建模和计算,而Python可以在同一个项目中用于Web技术、数据处理、机器学习等。
  • 改进的数据处理:主要地,Python旨在借助NumPy和Pandas等库处理大型数据集。
  • 功能的灵活性:MATLAB被认为是适用于工程分析和设计的最强大的技术计算环境之一;然而,对于与技术计算不直接相关的活动,许多工程师和科学家使用Python而不是MATLAB。

在MATLAB中设置Python

1. 检查Python版本

首先,在MATLAB中调用Python函数;我们需要知道MATLAB是否支持Python以及它是否在MATLAB上配置。这包括检查MATLAB当前在后台使用的是哪个Python版本,并确保它支持您的脚本。

验证MATLAB中的Python版本

要查看MATLAB中当前使用的Python版本,用户可以使用pyenv函数,如以下调用所示。此函数提供有关Python环境的状态、版本、可执行文件路径以及环境是否处于活动状态的信息。

示例

此命令将输出当前的Python环境,例如

  • 版本:MATLAB正在使用的Python的动态类型,例如3.9.7。
  • 可执行文件:MATLAB指向Python可执行文件的实际路径。
  • 库:Python库的位置。
  • 状态:Sohn,表示Python框架是否已加载并可访问。

如果未检测到Python环境或未检测到正确版本的Python,则需要为特定的Python接口设置MATLAB。

2. 配置MATLAB以使用特定的Python解释器

MATLAB还允许您设置特定的Python解释器,如果您有多个Python安装,或者您想使用与默认版本不同的Python版本,这会很有用。

  • 当您想将MATLAB切换到另一个Python版本时,您可以使用带有Version属性的pyenv函数。您可以将环境变量指向所需的Python版本的路径,也可以直接指向该版本。

示例1:设置特定的Python版本

这将MATLAB设置为使用Python 3.8版(如果已安装)。

示例2:指定自定义Python安装目录

在这里,您指定特定Python解释器的完整路径。

示例3:使用Anaconda Python

如果您正在使用Anaconda,它可能有一个单独的Python环境,请指定Anaconda Python路径

  • 确保您选择的Python版本已安装并且您的系统可访问。如果MATLAB无法找到指定的Python版本,它将使用系统的默认Python解释器。

3. 验证配置

一旦MATLAB设置为正确的Python解释器,确保优化正确完成并且Python可以在MATLAB中无问题地使用至关重要。

  • 在MATLAB中运行简单的Python命令:要检查Python是否正确设置,可以在MATLAB命令行中执行最简单的编程语言操作。例如,您可以使用Python的内置print()函数

示例

如果配置正确,MATLAB将输出

  • 检查Python集成:您还可以拥有更复杂的Python功能。例如,您可以使用Python的math模块计算数字的平方根

预期结果将是

  • 验证Python库导入:按照附录说明尝试将标准Python模块(例如numpy或pandas)导入MATLAB

如果导入成功,则正在使用的Python库已设置良好,现在您可以将其与MATLAB一起使用。

在MATLAB中调用Python函数

要从MATLAB访问Python数据并调用Python函数,用户必须使用py。以及函数或模块的名称。它与Python非常吻合,您现在可以从MATLAB调用Python库和子例程。

调用Python函数的语法

  • 模块:用Python编写的模块/库的名称。
  • 函数:在编码并放入该模块时给出的名称。
  • arg1, arg2, ...:将在Python函数的参数中传递的信息。

示例:因此,如果您希望在Python中调用math.sqrt()函数,您可以在MATLAB中编写以下代码

调用内置Python函数

MATLAB可以调用Python编程语言的许多固有函数,这些函数可能有效地用于数字、字符串和几乎任何其他类型的操作。MATLAB还提供了大量的内置原语,并且与Python环境的接口允许我们轻松地利用它们。

示例1:调用Python的math.sqrt()函数

MATLAB的优点是Python的math模块包含诸如“sqrt”之类的数学函数,可以直接使用。

这将返回5.0作为结果,因为25的平方根是5。

示例2:调用Python的len()函数

您还可以调用Python的本机len()函数,该函数计算与字符串或列表等对象数量相关的数量。

这将返回14,即字符串中的字符数。

示例3:使用Python的str模块进行字符串操作

对于字符串操作,可以在MATLAB中使用Python的str方法。

这将返回“HELLO WORLD”作为结果。

从模块调用Python函数

还值得一提的是,在MATLAB中,您可以调用其他Python库和模块中的函数,例如numpy和pandas。这些库提供了用于数值计算、数据操作和许多其他方面的有趣功能。

示例1:调用Python的numpy.array()函数

Numpy是Python中用于科学计算的基本工具,它可以用于生成数组和进行矩阵算术。要从MATLAB调用numpy.array()

这应该返回一个numpy数组对象以在MATLAB中使用(至少在Google的MATLAB工具箱中是这样)。要将其转换为MATLAB数组,您可以使用numpy.array并访问tolist()方法

示例2:调用Python的pandas.DataFrame()函数

pandas实际上是一个非常重要的数据处理库。您可以使用pandas.DataFrame()函数来创建MATLAB DataFrame。

这将创建一个带有两列的pandas DataFrame:检查DataFrame的所有名称和所有年龄,并在MATLAB中显示DataFrame。数据在py.dict中传递,其中每个键/值对的字典中都有特定列的数据类型。


下一个主题线性拟合MATLAB