主要内容

编码器。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对象t从值类对象v通过使用coder.typeof的性质t和的性质一样吗v与属性常数设置为

复制语义

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

例子

创建基于示例对象的类型

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

创建值类myRectangle

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

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

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

创建一个对象myRectangle

v = myRectangle(1、2)
v = myRectangle带有属性:length: 1 width: 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 > 0 obj。一边= val;结束结束函数A = calcalarea (obj)* obj.side;结束结束结束

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

t = coder.newtype (“mySquare”

上一步创建一个编码器。ClassType类型t,但不指定的任何属性mySquare到它。以确保t具有的所有性质mySquare,指定类型一边通过使用t.Properties

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

提示

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

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

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

    t = code .typeof(myClass)newprop1 = coder.typeof (int8 (2));t.Properties。newprop2 =编码器。typeof ((1 2 3));

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

介绍了R2017a