В этом примере показано, как сгенерировать код для 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.
Щелкните по ссылке View report.
Видеть Rhombus определение класса, на панели MATLAB Source, под Rhombus.m, нажмите Rhombus. Rhombus конструктор класса подсвечен.
Кликните по вкладке Variables. Вы видите что переменная obj объект Rhombus класс. Чтобы видеть его свойства, расширьте obj.

В панели MATLAB Source нажмите Call Tree.
Представление Call Tree показывает тот use_shape вызывает Rhombus конструктор и что Rhombus конструктор вызывает Shape конструктор.

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