速查表

从 MATLAB 调用 Python

此参考资料显示的是常见用例,并非完整列表。

使用 MATLAB 增强 Python

将 MATLAB 的高级工具直接集成到您的 Python 工作流中。

设置

要求

要从 MATLAB 中调用 Python®,您需要在系统上同时安装这两个软件。

配置

访问 Python 解释器的设置和状态:

>> pe = pyenv 

指定要使用的版本:

>> pe = pyenv("Version","3.9") 

确保 PYTHONHOME 环境变量与您的 Python 版本一致。要在 MATLAB 中查看其值,请使用:

>> getenv("PYTHONHOME") 

确保系统路径中有适当的版本:

>> getenv("PATH")

在 MATLAB 中运行 Python 代码

实时编辑器任务

运行 Python 代码任务支持您以交互方式运行 Python 代码或文件,然后生成代码。

调用 Python 语句

要执行几行代码,请使用:

>> outvars = pyrun(code,outputs) 
>> x = pyrun("a = b*c","a", b = 5, c = 10)

调用 Python 脚本

要执行脚本中的代码,请使用:

>> outvars = pyrunfile(file,outputs) 

调用 Python 模块和函数

>> py.module_name.function_name 
>> x = py.math.sqrt(42) 

传递关键字参量

可以直接调用,也可以使用 pyargs

>>> foo(5,bar=42) 
>> py.foo(5,bar=42) 
>> py.foo(5,pyargs('bar',42)) 

重新加载模块

更新后重新加载模块:

>> py.importlib.reload(module)

数据类型转换

数据类型将尽可能自动转换。

MATLAB Python
Double, single Float
complex single
complex double
Complex
(u)int8, (u)int16, (u)int32, (u)int64 int
NaN Float(nan)
Inf Float(inf)
String, char Str
Logical Bool
Dictionary dict
Struct dict
Table Py.pandas.dataframe
Datetime Py.datetime.datetime
Duration Py.datetime.timedelta

数据科学库

Apache Parquet

使用 Apache® Parquet 高效传输数据。

从 MATLAB:

>> tbl = parquetread(fname)
>> parquetwrite(tbl,fname) 

从 Python:

>>> df = pandas.read_parquet(fname)
>>> pandas.Dataframe.to_parquet(df) 

深度学习

通过适用于 TensorFlow、PyTorch® 和 ONNX 的导入器访问 MATLAB 中的模型。

>> net = importKerasNetwork(model)

集成 Python 和 Simulink

您可以使用 Python 导入器将 Python 模块和包导入 Simulink 中。

打开导入器:

>> obj = Simulink.PythonImporter(); 
>> obj.view(); 

MATLAB Function 模块和 MATLAB System 模块

使用 MATLAB Function 模块或 MATLAB System 模块在 Simulink 中实现 Python 模块