主要内容

编码器。CellType类

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

代表的MATLAB细胞数组

描述

指定生成的代码接受的单元格数组集。仅与codegenarg游戏选择。不要将输入传递给生成的MEX函数。

建设

请注意

您还可以创建和编辑编码器。类型对象通过使用编码器类型编辑器进行交互。看到使用编码器类型编辑器创建和编辑输入类型

t = coder.typeof (细胞创建一个编码器。CellType对象获取具有相同单元格和单元格类型的单元格数组细胞.的细胞细胞类型对象或示例值。

t = coder.typeof (细胞深圳variable_dims创建一个编码器。CellType对象指定的上界深圳和可变尺寸由variable_dims.如果深圳指定对于一个维度,则该维度的大小是无界的,并且该维度是可变大小的。当深圳[],上界不变。如果不指定variable_dims输入参数,除了无界尺寸外,类型的尺寸都是固定的。一个标量variable_dims适用于没有的有界维度10

细胞指定单元格数组,其元素具有不同的类,不能使用coder.typeof创建一个编码器。CellType对象获取可变大小的单元格数组。

t = coder.newtype(“细胞”,细胞创建一个编码器。CellType方法指定的单元格和单元格类型的单元格数组细胞.的细胞细胞必须是类型对象。

t = coder.newtype(“细胞”,细胞深圳variable_dims创建一个编码器。CellType它的上界由深圳和可变尺寸由variable_dims.如果深圳指定对于一个维度,则该维度的大小是无界的,并且该维度是可变大小的。当深圳[],上界不变。如果不指定variable_dims输入参数,除了无界尺寸外,类型的尺寸都是固定的。一个标量variable_dims适用于没有的有界维度10

细胞指定单元格数组,其元素具有不同的类,不能使用coder.newtype创建一个编码器。CellType对象获取可变大小的单元格数组。

输入参数

全部展开

指定输出的单元格和单元格类型的单元格数组编码器。CellType对象。为coder.typeof细胞可以包含类型对象或示例值。为coder.newtype细胞必须包含类型对象。

指定单元格数组类型对象的每个维度的上限。为coder.newtype深圳不能更改异构单元格数组的单元格数。

coder.newtype,默认为[1]

指定每个维度是可变大小(true)还是固定大小(false)。

coder.newtype,默认为真正的对于其中的维度深圳的上限而且对于所有其他维度。

细胞指定单元格数组,其元素具有不同的类,则不能创建编码器。CellType对象获取可变大小的单元格数组。

属性

全部展开

这种类型的结构以字节为单位的运行时内存对齐。如果你有嵌入式编码器®许可证和使用代码替换库(Code Replacement Libraries, CRLs), CRLs提供了将传入替换函数的数据对象对齐到指定边界的能力。您可以利用需要对齐数据的特定于目标的函数实现。默认情况下,该结构没有在特定的边界上对齐,因此需要对齐的CRL函数不匹配该结构。

对象的单元格数组编码器。类型每一个细胞。

类中的值。

指定单元格数组类型是否由外部定义。

如果单元格数组类型是外部定义的,则包含该类型的外部定义的头文件的名称,例如,“mytype.h”如果您使用codegen命令指定文件的路径,请使用-我选择。如果您使用MATLAB®编码器™应用程序来指定文件的路径,使用其他包括目录设置在自定义代码选项卡。

默认情况下,生成的代码包含# include标准头文件之后的自定义头文件的语句。如果标准头文件引用自定义结构类型,则编译失败。如果指定HeaderFile选项,则代码生成器包含所需的自定义头文件。

单元格数组的维度的上界。

要在表示此单元格数组类型的结构类型的生成代码中使用的名称。TypeName仅应用于异构单元格数组类型。

一个向量,指定数组的每个维度是固定大小还是可变大小。如果一个向量元素是真正的,对应尺寸为可变尺寸。

方法

isHeterogeneous 确定单元格数组类型是否表示异构单元格数组
isHomogeneous 确定单元格数组类型是否表示同构单元格数组
makeHeterogeneous 生成单元格数组类型的异构副本
makeHomogeneous 创建单元格数组类型的同构副本

复制语义

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

例子

全部折叠

为第一个元素具有char类,第二个元素具有double类的单元格数组创建一个类型。

t = coder.typeof ({123})
t =编码器。CellType1x3 homogeneous cell base: 1x1 double

类型是同质的。

若要在示例单元格数组类型的元素具有相同的类时创建异构类型,请使用makeHeterogeneous方法。

t = makeHeterogeneous(编码器。typeof ({1 2 3}))
t =编码器。CellType1×3 locked heterogeneous cell f1: 1×1 double f2: 1×1 double f3: 1×1 double

单元格数组类型是异构的。它在生成的代码中表示为一个结构。

定义示例单元格值的变量。

一个=“一个”;b = 1;

将示例单元格值传递给coder.typeof

t = coder.typeof ({a, b})
t =编码器。CellType1x2 heterogeneous cell f0: 1x1 char f1: 1x1 double

为包含两个大小不同的字符向量的单元格数组创建类型。

t = coder.typeof ({“aa”“bbb”})
t =编码器。CellType1x2 heterogeneous cell f0: 1x2 char f1: 1x3 char

单元格数组类型是异构的。

使用相同的单元格数组输入创建一个类型。这一次,指定单元格数组类型具有可变尺寸的维度。

t = coder.typeof ({“aa”“bbb”}, [1, 10], [0,1])
t =编码器。CellType1×:10 locked homogeneous cell base: 1×:3 char

单元格数组类型是同构的。coder.typeof确定了基类型1 x: 3字符可以代表“aa”,“bbb”

为标量创建类型int8

ta = coder.newtype (“int8”[1]);

为a:1x:2双行向量创建一个类型。

结核病= coder.newtype (“双”[1 - 2], [1]);

创建单元格数组类型,其单元格的类型由助教而且助教

t = coder.newtype (“细胞”,{助教,结核病})
t =编码器。CellType1x2 heterogeneous cell f0: 1x1 int8 f1: :1x:2 double

为异构单元格数组创建单元格类型。

ca = coder.typeof(双(0));cb = coder.typeof(单(0));t = coder.typeof ({ca cb})
编码器。细胞类型1x2异质细胞f0: 1x1双f1: 1x1单

使用coder.cstructname指定类型的名称以及在外部文件中定义的类型。

t = coder.cstructname (t)“mytype”“外来的”“HeaderFile”“myheader.h”
t =编码器。CellType1×2extern locked heterogeneous cell mytype(myheader.h) [-1] f1: 1×1 double f2: 1×1 single

提示

  • 在展示一个编码器。CellType对象,条款锁定异构锁定均匀指出同质或异质的分类是永久的。方法以后不能更改分类makeHomogeneousmakeHeterogeneous方法。

  • coder.typeof确定单元格数组类型是同构还是异构。如果单元格数组元素具有相同的类和大小,coder.typeof返回同构单元格数组类型。如果元素有不同的类,coder.typeof返回异构单元格数组类型。对于某些单元格阵列,是同构还是异构的分类是模糊的。例如,{1[2 3]}的类型可以是1x2的异构类型。第一个元素是double,第二个元素是1x2 double。类型也可以是1x3同构类型,其中元素的类为double,大小为1x:2。对于这些模棱两可的案例,coder.typeof使用启发式方法将类型分类为同类或异类。如果需要不同的分类,请使用makeHomogeneousmakeHeterogeneous方法。的makeHomogeneous方法生成类型的同构副本。的makeHeterogeneous方法生成类型的异构副本。

    makeHomogeneous而且makeHeterogeneous方法分别永久地将分类分配为同质和异构。以后不能使用这些方法之一创建具有不同分类的副本。

版本历史

介绍了R2015b

Baidu
map