主要内容

生成代码MATLAB值类

这个例子展示了如何为MATLAB生成代码®值类,然后在代码生成报告中查看生成的代码。

  1. 在可写文件夹中,创建MATLAB值类,形状.将代码保存为Shape.m

    classdef形状在坐标处创建一个形状% centerX和century属性centerX;centerY;结束属性(依赖= true)区域;结束方法函数Out = get.area(obj) Out = obj.getarea();结束函数obj =形状(centerX, century)centerX = centerX;obj。世纪=世纪;结束结束方法getarea(obj);结束方法(静态)函数d = distanceBetweenShapes(shape1,shape2) xDist = abs(shape1. d)- shape2.centerX);yDist = abs(shape1。century - shape2. century);d =√(xDist^2 + yDist^2);结束结束结束
  2. 在同一个文件夹中,创建一个类,广场的子类形状.将代码保存为Square.m

    classdef方形<形状在坐标中心X和Y处创建一个正方形边长为边长的%属性一面;结束方法函数obj = Square(side,centerX,centerY) obj@Shape(centerX,centerY);obj。侧;结束函数getarea(obj) Area = obj.side^2;结束结束结束
  3. 在同一个文件夹中,创建一个类,菱形的子类形状.将代码保存为Rhombus.m

    classdef菱形<形状属性diag1;diag2;结束方法函数obj =菱形(diag1,diag2,centerX,centerY) obj@Shape(centerX,centerY);obj。Diag1 = Diag1;obj。Diag2 = Diag2;结束函数getarea(obj) = 0.5*obj.diag1*obj.diag2;结束结束结束
  4. 编写一个使用该类的函数。

    函数[TotalArea, Distance] = use_shape . [TotalArea, Distance] = use_shape .% # codegens =平方(2,1,2);r =菱形(3,4,7,10);TotalArea = s.area + r.area;距离= Shape.distanceBetweenShapes(s,r);
  5. 生成的静态库use_shape并生成代码生成报告。

    codegen配置:自由报告use_shape

    codegen生成一个具有默认名称的C静态库,use_shape,以及默认文万博1manbetx件夹中的支持文件,codegen / lib / use_shape

  6. 单击查看报告链接。

  7. 去看菱形类的定义MATLAB源窗格中,在Rhombus.m,点击菱形.的菱形类构造函数高亮显示。

  8. 单击变量选项卡。你可以看到这个变量obj是对象的菱形类。要查看其属性,请展开obj

    此图像显示了前面讨论的示例的代码生成报告查看器。它显示了Rhombus类的代码,以及类构造函数的属性。

  9. MATLAB源窗格中,单击调用树

    调用树视图显示use_shape调用菱形构造函数,并且菱形构造函数调用形状构造函数。

    此图像显示单击调用树后的MATLAB源代码窗格。

  10. 在代码窗格中菱形类的构造函数,将指针移到这一行:

    obj@Shape (centerX centerY)
    菱形类构造函数调用形状基地的方法形状类。浏览形状类定义,在obj@Shape,双击形状

    此图像显示报表查看器中Shape类定义的代码。在执行第10步之后,该视图将打开。要查看Shape类定义,请在obj@Shape中双击Shape。