Можно управлять количеством аргументов ввода или вывода в сгенерированной функции точки входа. От одной функции 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
Чтобы сгенерировать функцию, которая берет только один аргумент, предоставьте одному аргументу -args
.
fiaccel myops -args {fi(3, 1, 16, 13)} -report
Можно также управлять количеством входных параметров, когда функция MATLAB не использует varargin
.
Рассмотрите эту функцию:
function [x, y] = myops(a,b) %#codegen if (nargin > 1) x = a + b; y = a * b; else x = a; y = -a; end
Чтобы сгенерировать функцию, которая берет только один аргумент, предоставьте одному аргументу -args
.
fiaccel myops -args {fi(3, 1, 16, 13)} -report
Когда вы используете fiaccel
, можно задать количество выходных аргументов при помощи опции -nargout
.
Рассмотрите эту функцию:
function [x, y] = myops(a,b) %#codegen x = a + b; y = a * b; end
Сгенерируйте функцию, которая имеет один выходной аргумент.
fiaccel myops -args {fi(3, 1, 16, 13) fi(3, 1, 16, 13)} -nargout 1 -report
Можно также использовать -nargout
, чтобы задать количество выходных аргументов в пользу функции точки входа, которая использует varargout
.
Перепишите myops
, чтобы использовать varargout
.
function varargout = myops(a,b) %#codegen varargout{1} = a + b; varargout{2} = a * b; end
Сгенерируйте код для одного выходного аргумента.
fiaccel myops -args {fi(3, 1, 16, 13) fi(3, 1, 16, 13)} -nargout 1 -report