Вы можете управлять количеством входных или выходных аргументов в сгенерированной функции точки входа. Из одного 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
.
codegen myops -args {3} -report
Если вы используете приложение MATLAB Coder™:
На странице Define Input Types нажмите Let me enter input or global types directly.
Чтобы добавить аргумент в таблицу переменных справа от 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
Чтобы сгенерировать функцию, которая принимает только один аргумент, предоставьте один аргумент с -args
.
codegen myops -args {3} -report
Если вы генерируете код при помощи codegen
, можно задать количество выходных аргументов при помощи -nargout
опция.
Рассмотрим эту функцию:
function [x, y] = myops(a,b) %#codegen x = a + b; y = a * b; end
Сгенерируйте функцию, которая имеет один выходной аргумент.
codegen myops -args {2 3} -nargout 1 -report
Можно также использовать -nargout
чтобы задать количество выходных аргументов для функции точки входа, которая использует varargout
.
Переписать myops
использовать varargout
.
function varargout = myops(a,b) %#codegen varargout{1} = a + b; varargout{2} = a * b; end
Сгенерируйте код для одного выходного аргумента.
codegen myops -args {2 3} -nargout 1 -report
Если вы используете приложение MATLAB Coder, чтобы задать количество выходов при возвращении функции varargout
или чтобы сгенерировать меньше выходов, чем задает функция:
На странице Define Input Types определите типы входа вручную или при помощи Autodefine Input Types.
В Number of outputs выберите номер.