MATLAB Function ブロックと MATLAB System ブロックを使用した Python 関数の呼び出し
この例では、Python® ソート関数と MATLAB Function ブロックおよび MATLAB System ブロックの 2 種類のブロックを使用して、乱数を並べ替える Python® 関数を Simulink® で呼び出す方法を示します。MATLAB® での Python の使用の詳細については、MATLAB から Python モジュールへのアクセス - 入門を参照してください。
MATLAB は、Python の参照実装 (通称 CPython) をサポートします。Mac または Linux® プラットフォームを使用している場合、Python は既にインストールされています。Windows を使用している場合、https://www.python.org/downloads などにある配布版をインストールする必要があります。詳細については、Python を使用するためのシステムの構成を参照してください。
Simulink モデルでの Python 関数の使用
このモデルには、0 から 1 までの 1 行 5 列の double
の数値を出力する乱数発生器、数値を並べ替える MATLAB Function ブロックと MATLAB System ブロック、および Display ブロックにつながる手動スイッチが含まれています。
MATLAB Function ブロックは、次のコードの抜粋に示すように、関数 py.sorted
を Python から呼び出し、1 行 5 列の double
の並べ替えられたリストを出力します。
function y = fcn(u) % Sort values of 'u' coder.extrinsic('py.sorted'); ytmp = py.sorted(u); end
MATLAB System ブロックは、次のコードの抜粋に示すように、関数 py.sorted
をstepImpl
の一部として呼び出し、1 行 5 列の 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 System ブロックを使用して実行すると、乱数発生器のブロックで生成される数値の並べ替えられたリストが得られます。この例を次に示します。