В этом примере показано, как создать код для класса значений MATLAB ®, а затем просмотреть созданный код в отчете о создании кода.
В папке с возможностью записи создайте класс значений MATLAB, Shape. Сохранить код как Shape.m.
classdef Shape % SHAPE Create a shape at coordinates % centerX and centerY properties centerX; centerY; end properties (Dependent = true) area; end methods function out = get.area(obj) out = obj.getarea(); end function obj = Shape(centerX,centerY) obj.centerX = centerX; obj.centerY = centerY; end end methods(Abstract = true) getarea(obj); end methods(Static) function d = distanceBetweenShapes(shape1,shape2) xDist = abs(shape1.centerX - shape2.centerX); yDist = abs(shape1.centerY - shape2.centerY); d = sqrt(xDist^2 + yDist^2); end end end
В той же папке создайте класс, Square, который является подклассом Shape. Сохранить код как Square.m.
classdef Square < Shape % Create a Square at coordinates center X and center Y % with sides of length of side properties side; end methods function obj = Square(side,centerX,centerY) obj@Shape(centerX,centerY); obj.side = side; end function Area = getarea(obj) Area = obj.side^2; end end end
В той же папке создайте класс, Rhombus, который является подклассом Shape. Сохранить код как Rhombus.m.
classdef Rhombus < Shape properties diag1; diag2; end methods function obj = Rhombus(diag1,diag2,centerX,centerY) obj@Shape(centerX,centerY); obj.diag1 = diag1; obj.diag2 = diag2; end function Area = getarea(obj) Area = 0.5*obj.diag1*obj.diag2; end end end
Запишите функцию, использующую этот класс.
function [TotalArea, Distance] = use_shape %#codegen s = Square(2,1,2); r = Rhombus(3,4,7,10); TotalArea = s.area + r.area; Distance = Shape.distanceBetweenShapes(s,r);
Создание статической библиотеки для use_shape и формируют отчет о создании кода.
codegen -config:lib -report use_shape
codegen создает статическую библиотеку C с именем по умолчанию, use_shapeи поддерживающие файлы в папке по умолчанию, codegen/lib/use_shape.
Щелкните ссылку Просмотр отчета.
Чтобы увидеть Rhombus определение класса на панели «Источник MATLAB» в разделе Rhombus.m, нажмите Rhombus. Rhombus конструктор класса выделен.
Перейдите на вкладку Переменные (Variables). Вы видите, что переменная obj является объектом Rhombus класс. Чтобы просмотреть его свойства, разверните obj.

На панели Источник MATLAB (MATLAB Source) щелкните Дерево вызовов (Call Tree).
Представление «Дерево вызовов» показывает, что use_shape вызывает Rhombus конструктора и что Rhombus конструктор вызывает Shape конструктор.

На панели кода в окне Rhombus конструктор класса, переместите указатель на эту строку:
obj@Shape(centerX,centerY)Rhombus конструктор класса вызывает Shape способ основания Shape класс. Для просмотра Shape определение класса, в obj@Shape, двойной щелчок Shape.
