主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

複数のシグネチャをサポートする1つの墨西哥人関数の生成

エントリポイント関数は,コードを生成する最上位のMATLAB®関数です。エントリポイント関数に入力がある場合,墨西哥人関数を生成するには入力のプロパティを指定しなければなりません。この場合,生成された墨西哥人関数は,コード生成中に指定したエントリポイント関数のシグネチャでのみ動作します。

エントリポイント関数で複数のシグネチャがサポートされている場合は,シグネチャごとに個別の墨西哥人関数を生成する代わりに,1つの墨西哥人関数を生成できます。生成された墨西哥人関数は,コード生成中に指定した複数のシグネチャで動作します。

複数シグネチャの墨西哥人機能を使用すると,以下のことができます。

  • エントリポイント関数で指定した複数のシグネチャをサポートする1つの墨西哥人関数を生成する。

  • エントリポイント関数のシグネチャごとに個別の墨西哥人関数を生成して使用するためのオーバーヘッドを削減する。

  • 生成された墨西哥人関数でMATLAB関数のような動作を実現する。

複数シグネチャの墨西哥人関数の生成

複数シグネチャの墨西哥人関数を生成するために,次の関数myAddを考えてみます。

函数y = myAdd (a, b)% # codegeny = a + b;结束
myAddから3つの異なるデータ型int8および向量的双打で動作する墨西哥人関数を生成するとします。3つの引数を{1,2}int8 {int8 (2), (3)}および{1:10, 1:10}として指定します。

myAdd関数のコードを生成するには,MATLABコマンドラインで次のcodegenコマンドを実行します。

codegen配置:墨西哥人myAdd.marg游戏{1,2}arg游戏int8 {int8 (2), (3)}arg游戏{1:10, 1:10}报告
この構文により,codegenコマンドで指定したシグネチャに対して1つの墨西哥人関数myAdd_mexが生成されます。

コマンドラインで,生成された墨西哥人関数myAdd_mexを呼び出します。myAdd_mexに渡す値がcodegenコマンドで指定した入力プロパティと一致することを確認します。

myAdd_mex(3、4)
ans = 7
int8 myAdd_mex (int8 (5) (6))
Ans = int8
myAdd_mex (1:10, 2:11)
Ans = 3 5 7 9 11 13 15 17 19 21

これらの入力値を使用してMATLAB関数myAddを実行すると,同じ出力が生成されます。これらのテストケースでは,myAddmyAdd_mexが同じ動作になることを検証します。

制限

複数シグネチャの墨西哥人の生成では以下はサポートされません。

参考

|

関連するトピック