exponenta event banner

кодер. OutputType

Тип вывода из функции точки входа для указания в качестве типа ввода

Описание

A coder.OutputType объект представляет тип выходной переменной функции точки входа. Использовать coder.OutputType для указания входных данных для другой функции точки входа. Передайте входные данные с помощью codegen -args вариант. Не передавать coder.OutputType объект как вход в сгенерированную функцию MEX.

Создание

Описание

пример

Примечание

Можно также создать coder.OutputType с помощью редактора типов кодеров. См. раздел Создание и редактирование типов ввода с помощью редактора типов кодеров.

t = coder.OutputType(func) создает объект, производный от coder.OutputType класс для представления первого вывода функции точки входа func.

t = coder.OutputType(func,n) создает объект, производный от coder.OutputType класс для представления n-й выход функции точки входа func.

Входные аргументы

развернуть все

Имя функции точки входа, из которой определяется тип вывода.

Пример: coder.OutputType('myConstructor')

Индекс, указывающий n-ая выходная переменная соответствующей функции точки входа.

Пример: coder.OutputType('myFnWithTwoOutputs',1)

Пример: coder.OutputType('myFnWithTwoOutputs',2)

Свойства

развернуть все

Имя функции точки входа, от которой происходит тип вывода.

Индекс вывода функции точки входа, из которого выводится тип вывода.

Примеры

свернуть все

Предположим, что у вас есть функция useString который предназначен для работы со строковым входом переменного размера. Запись функции конструктора для строки переменного размера. Передача выходных данных в качестве входных данных useString с помощью coder.OutputType.

Запись функции MATLAB ®useString выполняет операции над входной строкой.

function y = useString(x)
%#codegen
y = replace(x,"be","not be");
end

Чтобы создать вход переменного размера, запишите функцию конструктора.

function str = myConstructor(charArr)
%#codegen
str = string(charArr);

Чтобы создать код, укажите тип ввода для конструктивной функции. Объявление ввода вектора символов переменного размера с помощью coder.typeof. Использовать coder.OutputType для представления выходного типа функции конструктора в качестве входного типа функции строковой операции.

% get type of var-size char array bounded as 1-by-100
t = coder.typeof('a', [1 100], [0 1]); 
% get output type
v = coder.OutputType('myConstructor');
% generate MEX function
codegen myConstructor -args {t} useString -args {v} -report -config:mex

Проверьте сгенерированный код путем вызова функции MEX в MATLAB:

a = myConstructor_mex('myConstructor','To be, or not to be.')
b = myConstructor_mex('useString',a)
a = 
    "To be, or not to be."
b = 
    "To not be, or not to not be."

Ограничения

  • Вы не можете использовать coder.OutputType в области структуры, ячейки или массива.

Представлен в R2018b