В приложении MATLAB ® Coder™, чтобы указать тип ввода, который является объектом класса значений:
Определите класс значений. Например, определите класс myRectangle.
classdef myRectangle properties length; width; end methods function obj = myRectangle(l,w) if nargin > 0 obj.length = l; obj.width = w; end end function area = calcarea(obj) area = obj.length * obj.width; end end end
Определите функцию, которая принимает объект класса значений в качестве входных данных. Например:
function z = getarea(r) %#codegen z = calcarea(r); end
В приложении создайте проект для getarea. На странице Определить типы ввода (Define Input Types) укажите тип объекта одним из следующих способов:
Запись тестового файла getarea_test который создает объект myRectangle класс и передает его getarea. Например:
rect_obj = myRectangle(4,5); rect_area = getarea(rect_obj); disp(rect_area);
В приложении на странице Определение типов ввода укажите тестовый файл getarea_test.
Щелкните Автоопределить типы ввода (Autodefine Input Types).
Если предоставляется объект класса значений, приложение использует размеры и типы свойств объекта примера.
В MATLAB определите объект класса значений. myRectangle.
rect_obj = myRectangle(4,5)
В приложении на странице Определение типов ввода щелкните Разрешить ввод типов ввода или глобальных типов напрямую.
Щелкните поле справа от входного параметра. r.
Выберите Определить по примеру (Define by Example).
Войти rect_obj или выберите его из списка переменных рабочей области.
Приложение определяет свойства, их размеры и типы из объекта примера.

Кроме того, можно указать имя класса значений. myRectangle, или coder.ClassType объект для этого класса. Определение coder.ClassType объект, использование coder.typeof. Например:
В MATLAB определите coder.ClassType объект, имеющий те же свойства, что и rect_obj.
t = coder.typeof(rect_obj)
В приложении предоставьте t в качестве примера.
Чтобы изменить размер или тип свойства, щелкните поле справа от свойства.
При создании кода свойства, определенные в приложении, должны соответствовать свойствам в файле определения класса. Если файл определения класса имеет свойства, которые не используются кодом, определение типа в приложении не должно включать эти свойства. Генератор кода удаляет свойства, которые не используются кодом.
Входы функций начального уровня, являющиеся объектами, имеют следующие ограничения:
Объект, являющийся вводом функции точки входа, должен быть объектом класса значений. Объекты классов дескрипторов не могут быть входами функций точки входа. Поэтому класс значений, содержащий класс дескриптора, не может быть вводом функции точки входа.
Объект не может быть глобальной переменной.
Если объект имеет повторяющиеся имена свойств, его нельзя использовать с coder.Constant. Повторяющиеся имена свойств встречаются в объекте подкласса в следующих ситуациях:
Подкласс имеет свойство с тем же именем, что и свойство суперкласса.
Подкласс является производным от нескольких суперклассов, использующих одно и то же имя для свойства.
Сведения о том, когда MATLAB допускает дублирование имен свойств, см. в разделе Подклассификация нескольких классов.