使用 MATLAB Function 和 MATLAB System 模块调用 Python 函数
此示例显示如何在 Simulink® 中调用 Python® 函数,该函数使用 Python® 排序函数和两个不同的模块对随机数进行排序:MATLAB Function 模块和 MATLAB System 模块。有关在 MATLAB® 中使用 Python 的更多信息,请参阅 从 MATLAB 访问 Python 模块 - 快速入门。
MATLAB 支持 Python 的参考实现,通常称为 CPython。如果您使用的是 Mac 或 Linux® 平台,则您已经安装了 Python。如果您使用的是 Windows®,则需要安装一个发行版,例如在 https://www.python.org/downloads/ 上找到的发行版。有关详细信息,请参阅配置您的系统使用 Python。
在 Simulink 模型中使用 Python 函数
该模型包含一个随机数生成器,输出一个包含从 0 到 1 的数字的 1x5 double,一个对数字进行排序的 MATLAB 函数和 MATLAB 系统模块,以及一个通向 Display 模块的手动开关。

MATLAB Function 模块从 Python 调用 py.sorted 函数并输出 1x5 double 排序列表,如下面的代码片段所示。
function y = fcn(u) % Sort values of 'u' coder.extrinsic('py.sorted'); ytmp = py.sorted(u); end
MATLAB 系统模块调用 py.sorted 函数作为 stepImpl 的一部分,并输出 1x5 double 排序列表,如下面的代码片段所示。
function y = stepImpl(~,u) % Implement algorithm. Calculate y as a function of input u and % discrete states. y = py.sorted(u); y = cellfun(@double,cell(y)); end
使用 MATLAB Function 模块或 MATLAB 系统模块运行此模型将产生随机数生成器模块中生成的数字的排序列表。下面可以看到一个示例。
