主要内容

生成的代码MATLAB值类

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

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

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

    classdef广场<形状%创建一个广场中心X和Y坐标中心%的边长属性一面;结束方法函数obj =广场(centerX, centerY) obj@Shape (centerX centerY);obj。=一起;结束函数面积= getarea (obj)面积= 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,距离]= use_shape% # codegens =广场(2,1,2);r =菱形(3、4、7、10);TotalArea =。区域+ 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

    这张图片显示了代码生成报告观众前面所讨论的例子。它显示了菱形的代码类,类的构造函数的属性。

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

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

    这张图片显示了MATLAB源窗格中单击调用树后。

  10. 在代码中窗格中,菱形类的构造函数,这条线移动你的指针:

    obj@Shape (centerX centerY)
    菱形类构造函数调用形状方法的基础形状类。查看形状类定义,obj@Shape,双击形状

    这张图片展示了形状类定义的代码在报告中查看器。这个视图打开后第10步。查看形状类定义,obj@Shape双击形状。