主要内容

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

coder.getArgTypes

テストファイルを実行して,関数の入力引数の型を判断する

説明

类型= coder.getArgTypes (test_fcnfcnは,test_fcnの実行によって判断される编码器。类型オブジェクトの细胞配列を返します。関数test_fcnは指定されたエントリポイントMATLAB®関数fcnを呼び出さなければなりません。fcnへの入力引数によって,戻り値の型が構築されます。

struct_of_types= coder.getArgTypes (test_fcn,{fcn_1,…,fcn_n})は,test_fcnの実行によって判断される编码器。类型オブジェクトの细胞配列を含む構造体を返します。関数test_fcnは,指定されたエントリポイント関数fcn_1fcn_nを使用して呼び出さなければなりません。これらの関数への入力引数によって,戻り値の型が構築されます。返される構造体は関数ごとに1つのフィールドを含んでいます。フィールド名は対応する関数の名前と同じです。

struct_of_types= coder.getArgTypes (test_fcnfcn“统一”,struct_flagは,エントリポイント関数が1つしかない場合でも,構造体を返します。统一的プロパティは,出力配列の型が细胞配列の構造体であるか(真实),细胞配列であるか(false)を定義します。

すべて折りたたむ

関数my_funを呼び出すテストファイルmy_testを実行して,my_funの入力パラメーターの型を取得します。これらの入力型を使用して,my_funのコードを生成します。

ローカルの書き込み可能なフォルダーでMATLAB関数my_funを作成し,それをファイルmy_fun.mに保存します。

函数y = my_fun (u, v)% # codegeny = u + v;结束

テスト関数my_testを作成して,それをファイルmy_test.mに保存します。

函数Y = my_test a = single(10);b =单(20);y = my_fun (a, b);结束

my_funの入力型を取得するには,テスト関数を実行します。

类型= coder.getArgTypes (“my_test”“my_fun”
类型= 1×2 cell array {1×1编码器。PrimitiveType}{1×1编码器。PrimitiveType}

これらの入力型をサンプル入力として使用して,my_funの墨西哥人関数を生成します。

codegenmy_funarg游戏类型

現在のフォルダーで,codegenは,型の入力を受け入れる墨西哥人関数my_fun_mexを生成します。

墨西哥人関数をテストします。以下に例を示します。

y = my_fun_mex(单(10)、单(20))

関数my_fun1my_fun2を呼び出すテストファイルmy_test2を実行して,my_fun1my_fun2の入力パラメーターの型を取得します。これらの入力型を使用して,my_fun1my_fun2のコードを生成します。

ローカルの書き込み可能なフォルダーでMATLAB関数my_fun1を作成します。それをファイルmy_fun1.mに保存します。

函数y = my_fun1 (u)% # codegeny = u;

関数my_fun2を作成します。それをファイルmy_fun2.mに保存します。

函数y = my_fun2 (u, v)% # codegenY = u + v;

テスト関数を作成します。

函数[y1, y2] = my_test2 a = 10;b =单(20);日元= my_fun1(一个);y2 = my_fun2 (a, b);结束

my_fun1my_fun2の入力型を取得するには,テスト関数を実行します。

类型= coder.getArgTypes (“my_test2”,{“my_fun1”“my_fun2”})
my_fun1: {[1×1编码器。} my_fun2: {[1×1编码器。PrimitiveType][1×1编码器。PrimitiveType]}

これらの入力型をサンプル入力として使用して,my_fun1my_fun2の墨西哥人関数を生成します。

codegenmy_fun1arg游戏types.my_fun1my_fun2arg游戏types.my_fun2

現在のフォルダーで,codegenは墨西哥人関数my_fun1_mexを生成します。この関数は,型の入力を受け入れる2つのエントリポイントmy_fun1my_fun2をもちます。

墨西哥人関数の各エントリポイントをテストします。以下に例を示します。

日元= my_fun1_mex (“my_fun1”,10) y2 = my_fun1_mex(“my_fun2”、10、20)

関数my_funを呼び出すテストファイルmy_testを実行して,my_funの入力パラメーターの型を取得します。これらの入力型を使用して,my_funのコードを生成します。

ローカルの書き込み可能なフォルダーでMATLAB関数my_funを作成し,それをファイルmy_fun.mに保存します。

函数y = my_fun (u, v)% # codegeny = u + v;结束

テスト関数my_testを作成して,それをファイルmy_test.mに保存します。

函数Y = my_test a = single(10);b =单(20);y = my_fun (a, b);结束

my_funの入力型をフィールドをもつ構造体として取得するには,テスト関数を実行します。

类型= coder.getArgTypes (“my_test”“my_fun”“统一”,真正的)
my_fun: {[1×1编码器。PrimitiveType][1×1编码器。PrimitiveType]}

これらの入力型をサンプル入力として使用して,my_funの墨西哥人関数を生成します。

codegenmy_funarg游戏types.my_fun

現在のフォルダーで,codegenは,型の入力を受け入れる墨西哥人関数my_fun_mexを生成します。

墨西哥人関数をテストします。以下に例を示します。

y = my_fun_mex(单(10)、单(20))

入力引数

すべて折りたたむ

入力型を判断するエントリポイントMATLAB関数の名前またはハンドル。この関数をローカル関数にすることはできません。書き込み可能なフォルダーのMATLABパス上に存在しなければなりません。

例:类型= coder.getArgTypes(“my_test”、“my_fun”);

例:类型= coder.getArgTypes (@my_test @my_fun);

データ型:字符|字符串|function_handle

入力型を判断する複数のエントリポイントMATLAB関数の名前またはハンドルを指定するコンマ区切りのリスト。これらの関数をローカル関数にすることはできません。書き込み可能なフォルダーのMATLABパス上に存在しなければなりません。エントリポイント関数の名前は一意でなければなりません。

例:类型= coder.getArgTypes (my_test,{‘my_fun1’,‘my_fun2});

例:类型= coder.getArgTypes (@my_test, {@my_fun1, @my_fun2});

データ型:字符|字符串|function_handle

テスト関数の名前またはハンドル,あるいはテストスクリプトの名前。テスト関数またはテスト スクリプトは MATLAB パス上に存在しなければなりません。test_fcnは,指定されたエントリポイント関数を少なくとも1つ呼び出さなければなりません。これらの関数への入力引数によって,戻り値の型が構築されます。

例:类型= coder.getArgTypes(“my_test”、“my_fun”);

データ型:字符|字符串|function_handle

真正的 エントリポイント関数が1つしかない場合であっても,test_fcnの実行によって判断される编码器。类型オブジェクトの细胞配列の構造体を返します。
test_fcnの実行によって判断される编码器。类型オブジェクトの细胞配列を返します。

例:coder.getArgTypes(“my_test”、“my_fun”、“统一”,真正的);

データ型:逻辑

出力引数

すべて折りたたむ

テスト関数の実行によって判断される编码器。类型オブジェクトの细胞配列。

関数test_fcnの実行によって判断される编码器。类型オブジェクトの细胞配列を含む構造体。この構造体は関数ごとに1つのフィールドを含んでいます。フィールド名は対応する関数の名前と同じです。

ヒント

  • coder.getArgTypesを使用する前に,MATLABでテスト関数を実行して,期待する結果が得られることを確認します。

  • テスト関数が,ランタイム環境に適した入力データ型を使用して,指定されたエントリポイント関数を呼び出していることを確認します。テスト関数が指定された関数を呼び出していない場合,coder.getArgTypesはこの関数の入力型を判断できません。

  • coder.getArgTypesは,アプリケーションに理想的な型を計算できない場合があります。たとえば,サイズを無制限にすると適切な場合があるとします。関数coder.getArgTypesは最大入力に基づく有限のサイズを返します。戻り値の型のサイズを調整するには,coder.resizeを使用します。

  • 入力の組み合わせによっては,coder.getArgTypesは,有効な型を生成できない場合があります。たとえば,テスト関数が,最初に单一型の入力をもつエントリポイント関数を呼び出し,その後,双型の入力をもつエントリポイント関数を呼び出すとします。この場合,両方の呼び出しを表現できる単一の型は存在しないため,coder.getArgTypesはエラーを生成します。

  • MATLAB関数のコードを生成するときは,arg游戏オプションを使用して戻り値の型を関数codegenに渡し,戻り値の型をサンプル入力として使用します。

R2012aで導入