文档

编码器。CellType类

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

表示的集合MATLAB细胞数组

描述

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

建设

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

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

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

T = code .newtype(细胞创建一个编码器。CellType属性指定的单元格和单元格类型的单元格数组细胞.的细胞细胞必须是类型对象。

T = code .newtype(cell_array深圳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对象用于可变大小的单元格数组。

属性

全部展开

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

属性的单元格数组编码器。类型每个细胞。

这个集合中值的类别。

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

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

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

单元格数组的维度上限。

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

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

方法

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

复制语义

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

例子

全部折叠

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

T = code .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 = code .typeof({a, b})
T =编码器。CellType1x2 heterogeneous cell f0: 1x1 char f1: 1x1 double

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

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

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

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

T = code .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 = code .newtype(“int8”[1]);

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

TB = code .newtype(“双”,[1 2],[1 1]);

创建单元格数组类型,其单元格具有指定的类型助教而且助教

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

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

Ca = code .typeof(double(0));Cb = code .typeof(single(0));T = code .typeof({ca cb})
编码器。cell type 1x2异构cell f0: 1x1双f1: 1x1单

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

T = code .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中引入

这个话题有用吗?