Main Content

Specify Number of Entry-Point Function Input or Output Arguments to Generate

You can control the number of input or output arguments in a generated entry-point function. From one MATLAB® function, you can generate entry-point functions that have different signatures.

Control Number of Input Arguments

If your entry-point function uses varargin, specify the properties for the arguments that you want in the generated function.

Consider this function:

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

To generate a function that takes only one argument, provide one argument with -args.

fiaccel myops -args {fi(3, 1, 16, 13)} -report

You can also control the number of input arguments when the MATLAB function does not use varargin.

Consider this function:

function [x, y] = myops(a,b)
%#codegen
if (nargin > 1)
    x = a + b;
    y = a * b;
else
    x = a;
    y = -a;
end

To generate a function that takes only one argument, provide one argument with -args.

fiaccel myops -args {fi(3, 1, 16, 13)} -report

Control the Number of Output Arguments

When you use fiaccel, you can specify the number of output arguments by using the -nargout option.

Consider this function:

function [x, y] = myops(a,b)
%#codegen
x = a + b;
y = a * b;
end

Generate a function that has one output argument.

fiaccel myops -args {fi(3, 1, 16, 13) fi(3, 1, 16, 13)} -nargout 1 -report

You can also use -nargout to specify the number of output arguments for an entry-point function that uses varargout.

Rewrite myops to use varargout.

function varargout = myops(a,b)
%#codegen
varargout{1} = a + b;
varargout{2} = a * b;
end

Generate code for one output argument.

fiaccel myops -args {fi(3, 1, 16, 13) fi(3, 1, 16, 13)} -nargout 1 -report

Related Topics