В этом примере показано, как сгенерировать код для 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. The 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.
