生成するエントリポイント関数の入力引数または出力引数の数の指定
生成されたエントリポイント関数内の入力引数または出力引数の数を制御できます。1 つの MATLAB® 関数から、異なるシグネチャをもつエントリポイント関数を生成できます。
入力引数の数の制御
エントリポイント関数が varargin
を使用する場合、生成された関数で使用する引数のプロパティを指定します。
次の関数を考えてみます。
function [x, y] = myops(varargin) %#codegen if (nargin > 1) x = varargin{1} + varargin{2}; y = varargin{1} * varargin{2}; else x = varargin{1}; y = -varargin{1}; end
取得する引数が 1 つのみの関数を生成するには、-args
で 1 つの引数を指定します。
codegen myops -args {3} -report
MATLAB Coder™ アプリを使用する場合は、次を行います。
[入力の型を定義] ページで [入力またはグローバルの型を直接入力します] をクリックします。
引数を追加するには、変数テーブルで、
varargin
の右側にある をクリックします。各引数のプロパティを指定します。
codegen
を使用してコードを生成する場合は、MATLAB 関数で varargin
を使用しない場合の入力引数の数も制御できます。
次の関数を考えてみます。
function [x, y] = myops(a,b) %#codegen if (nargin > 1) x = a + b; y = a * b; else x = a; y = -a; end
取得する引数が 1 つのみの関数を生成するには、-args
で 1 つの引数を指定します。
codegen myops -args {3} -report
出力引数の数の制御
codegen
を使用してコードを生成する場合は、-nargout
オプションを使用して出力引数の数を指定できます。
次の関数を考えてみます。
function [x, y] = myops(a,b) %#codegen x = a + b; y = a * b; end
1 つの出力引数をもつ関数を生成します。
codegen myops -args {2 3} -nargout 1 -report
-nargout
を使用して、varargout
を使用するエントリポイント関数の出力引数の数を指定することもできます。
varargout
を使用するように myops
を書き換えます。
function varargout = myops(a,b) %#codegen varargout{1} = a + b; varargout{2} = a * b; end
1 つの出力引数に対応するコードを生成します。
codegen myops -args {2 3} -nargout 1 -report
MATLAB Coder アプリを使用している場合、関数が varargout
を返す時の出力数を指定するには、または関数で定義される出力よりも少ない数の出力を生成するには、次のようにします。
[入力の型を定義] ページで、入力の型を手動で定義するか、[入力の型の自動定義] を使用して定義します。
[出力数] で、出力の数を選択します。