Задайте количество Входного параметра функции точки входа или выходных аргументов для генерации

Вы можете управлять количеством входных или выходных аргументов в сгенерированной функции точки входа. Из одного 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™:

  1. На странице Define Input Types нажмите Let me enter input or global types directly.

  2. Чтобы добавить аргумент в таблицу переменных справа от varargin, нажмите.

  3. Задайте свойства для каждого аргумента.

Если вы генерируете код при помощи 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 или чтобы сгенерировать меньше выходов, чем задает функция:

  1. На странице Define Input Types определите типы входа вручную или при помощи Autodefine Input Types.

  2. В Number of outputs выберите номер.

Похожие темы