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

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

Похожие темы