文档

编码器。ClassType类

包:编码器
超类:编码器。ArrayType

表示的集合MATLAB

描述

指定生成的代码可以接受的一组值类对象。仅与codegenarg游戏选择。不要将其作为输入传递给生成的MEX函数。

建设

t= coder.typeof (value_class_object创建一个编码器。ClassType对象的对象value_class_object

t= coder.newtype (value_class_name创建一个编码器。ClassType类的对象value_class_name

输入参数

value_class_object

的值类对象,从中创建编码器。ClassType对象。value_class_object是一个表达式,其计算结果为值类的对象。例如:

v = myValueClass;T = coder.typeof(v);

t = coder.typeof(myValueClass(2,3));

value_class_name

MATLAB中值类定义文件的名称®路径。指定为字符向量或字符串标量。例如:

T = coder.newtype(“myValueClass”);

属性

当你创建编码器。ClassType对象coder.typeof,编码器。ClassType对象具有与构造它的对象相同的属性。

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象(MATLAB)。

例子

基于样例对象创建类型

基于工作区中的示例对象创建类型。

创建一个值类myRectangle

classdefmyRectangle属性长度;宽度;结束方法函数obj = myRectangle(l,w)如果Nargin b> 0 obj。长度= l;obj。宽度= w;结束结束函数Area = calcarea(obj) Area = obj。长度* obj.width;结束结束结束

创建一个接受的对象的函数myRectangle作为输入。

函数Z = getarea(r)% # codegenZ = calcarea(r);结束

的对象myRectangle

v = myRectangle(1,2)
v = myRectangle,长度:1,宽度:2

创建一个编码器。ClassType对象v

T = coder.typeof(v)
T =编码器。ClassType1×1 myRectangle length: 1×1 double width : 1×1 double

coder.typeof创建一个编码器。ClassType对象具有相同的属性名称和类型v有。

生成代码getarea。参数指定输入类型编码器。ClassType对象,t,到…arg游戏选择。

codegengetareaarg游戏{t}报告

使用创建类型coder.newtype

创建一个编码器。ClassType对象用于值类的对象mySquare通过使用coder.newtype

创造价值类mySquare它有一个性质,一边

classdefmySquare属性一面;结束方法函数obj = mySquare(val)如果Nargin b> 0 obj。Side = val;结束结束函数A = calcarea(obj)Side * obj.side;结束结束结束

创建一个编码器。ClassType类型mySquare

T = coder.newtype(“mySquare”

指定的类型一边

t.Properties.side = coder.typeof(2)

提示

  • 创建一个编码器。ClassType,您可以修改属性的类型。例如:

    t = coder.typeof(myClass)Prop1 = coder.typeof(int16(2));t.Properties。Prop2 =编码器。typeof([1 2 3]);

  • 创建一个编码器。ClassType,您可以添加属性。例如:

    t = coder.typeof(myClass)Newprop1 = coder.typeof(int8(2));t.Properties。Newprop2 =编码器。Typeof ([1 2 3]);

  • 的属性编码器。ClassType传递给的对象codegen必须与类定义文件中的属性一致。但是,如果类定义文件具有代码不使用的属性,则编码器。ClassType对象不必包含这些属性。代码生成器将删除不使用的属性。

在R2017a中引入

这个话题有帮助吗?