Этот пример показывает, как сгенерировать код для класса значения MATLAB® и затем просмотреть сгенерированный код в отчете генерации кода.
В перезаписываемой папке создайте класс значения MATLAB, Shape. Сохраните код как Shape.m 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 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 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 нажмите Call Tree.
Структурный вид Вызова показывает, что use_shape вызывает конструктора Rhombus и что конструктор Rhombus вызывает конструктора Shape.

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