主要内容

指定对象作为输入MATLAB编码器应用程序

MATLAB®编码器™应用程序,指定的类型的一个输入值类对象:

  1. 定义类的值。例如,定义一个类myRectangle

    classdefmyRectangle属性长度;宽度;结束方法函数obj = myRectangle (l, w)如果输入参数个数> 0 obj。长度= l;obj。宽度= w;结束结束函数面积=钙质海绵纲(obj)面积= obj。长度* obj.width;结束结束结束

  2. 定义一个函数,接受值类的一个对象作为输入。例如:

    函数z = getarea(右)% # codegenz =钙质海绵纲(r);结束

  3. 在这个应用程序中,创建一个项目getarea。在定义输入类型页面上,指定类型的对象在其中的一个方面:

自动定义一个对象的输入类型

  • 编写一个测试文件getarea_test创建一个对象myRectangle类,并将其传递到getarea。例如:

    rect_obj = myRectangle (4、5);rect_area = getarea (rect_obj);disp (rect_area);

  • 在应用,定义输入类型页面上,指定测试文件getarea_test

  • 点击Autodefine输入类型

提供一个例子

如果你提供价值类的一个对象,应用程序使用大小和类型的实例对象的属性。

  1. 在MATLAB中,定义一个对象类的价值myRectangle

    rect_obj = myRectangle (4、5)

  2. 在应用,定义输入类型页面,点击让我进入直接输入或全球类型

  3. 单击右边的输入参数r

  4. 选择定义的例子

  5. 输入rect_obj或者从列表中选择它的工作空间变量。

    应用程序决定了属性和它们的大小和类型的对象实例。

或者,您可以提供价值的类名,myRectangle,或者一个coder.ClassType对象的类。定义一个coder.ClassType对象,使用coder.typeof。例如:

  1. 在MATLAB中,定义一个coder.ClassType对象具有相同的属性rect_obj

    t = coder.typeof (rect_obj)

  2. 的应用,提供t为例。

改变大小或类型的属性,单击字段右侧的属性。

类型定义之间的一致性和类定义文件

生成代码时,您定义的属性在应用程序必须符合类定义中的属性文件。如果类定义文件属性,不使用你的代码,你的类型定义在应用程序不需要包含这些属性。代码生成器删除属性,代码没有使用。

限制使用对象作为入口点函数的输入

入口点函数的输入对象有这些限制:

  • 的对象是一个入口点函数值类的输入必须是一个对象。处理类的对象不能入口点函数的输入。因此,一个值类,它包含一个处理类不能被一个入口点函数的输入。

  • 一个对象不能被一个全局变量。

  • 如果一个对象有重复的属性名称,你不能使用它coder.Constant。重复的属性名称出现在一个子类的对象在这些情况下:

    • 子类的属性相同的名称作为一个超类的属性。

    • 的子类来源于多个超类使用相同名称的属性。

    信息在MATLAB允许重复的属性名称,明白了子类化多个类

另请参阅

相关的话题