メインコンテンツ

エントリポイント関数の入力引数または出力引数の数の指定

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

参考

| |

トピック