エントリポイント関数の入力引数または出力引数の数の指定
MATLAB® コードで取得する入力や生成される出力の数が生成コードに含める必要がある数より多い場合、不要な引数のコードを生成しないようにコード ジェネレーターに指示できます。
入力引数の数の制御
次の関数を考えてみます。どちらの関数も柔軟な数の入力引数をサポートします。
function [x,y] = myops1(varargin) %#codegen if (nargin > 1) x = varargin{1}+varargin{2}; y = varargin{1}*varargin{2}; else x = varargin{1}; y = -varargin{1}; end
function [x,y] = myops2(a,b) %#codegen if (nargin > 1) x = a+b; y = a*b; else x = a; y = -a; end
引数を 1 つだけ取得する関数を生成するには、-args
を使用して fiaccel
に引数を 1 つ提供します。
fiaccel myops1 -args {fi(3, 1, 16, 13)} -report
fiaccel myops2 -args {fi(3, 1, 16, 13)} -report
出力引数の数の制御
fiaccel
を使用する場合、-nargout
オプションを使用して出力引数の数を指定できます。
次の関数を考えてみます。
function varargout = myops3(a,b) %#codegen varargout{1} = a+b; varargout{2} = a*b; varargout{3} = a/b; varargout{4} = a-b; end
function [output1,output2,output3,output4] = myops4(a,b) %#codegen output1 = a+b; output2 = a*b; output3 = a/b; output4 = a-b; end
引数を 1 つだけ出力する関数を生成するには、fiaccel
関数で -nargout
オプションを使用して出力引数を 1 つ指定します。
fiaccel myops3 -args {fi(3,1,16,13),fi(3,1,16,13)} -nargout 1 -report
fiaccel myops4 -args {fi(3,1,16,13),fi(3,1,16,13)} -nargout 1 -report
参考
fiaccel
| varargin
| varargout