主要内容

coder.newtype

创建编码器。类型对象表示入口点函数输入的类型

描述

coder.newtype函数是一个高级函数,可以用来控制编码器。类型对象。考虑使用coder.typeof而不是coder.newtype.这个函数coder.typeof从MATLAB中创建一个类型®的例子。默认情况下,tcoder.newtype“class_name”)不分配类的任何属性,class_name到对象t

例子

请注意

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

t= coder.newtype (numeric_class深圳variable_dims创建一个编码器。类型表示类值的对象numeric_class、大小深圳(上界)和可变维度variable_dims.如果深圳指定对于一个维度,则该维度的大小是无界的,并且该维度是可变大小的。当variable_dims,则类型的维度是固定的,但无界的维度除外。当variable_dims是标量,它应用于非类型维度10,它们是固定的。

t= coder.newtype (numeric_class深圳variable_dims名称,值创建一个编码器。类型对象通过使用指定为一个或多个名称、值对参数的附加选项。

例子

t= coder.newtype(“常数”,价值创建一个编码器。常数对象,表示单个值。使用此类型指定在生成的代码中必须作为常量处理的值。

例子

t= coder.newtype(“结构”,struct_fields深圳variable_dims创建一个编码器。StructType对象获取具有与标量结构相同字段的结构数组struct_fields.结构数组类型具有指定的大小深圳和指定的可变尺寸尺寸variable_dims

例子

t= coder.newtype(“细胞”,细胞深圳variable_dims创建一个编码器。CellType方法指定的单元格和单元格类型的单元格数组细胞.单元格数组类型的大小由深圳和指定的可变尺寸尺寸variable_dims.您不能更改单元格的数量或为异构单元格数组指定可变大小的尺寸。

例子

tnumerictype = coder.newtype(“embedded.fi”,深圳variable_dims名称,值创建一个编码器。FiType对象,该对象表示一组不动点值numerictype和由一个或多个Name、Value对参数指定的其他选项。

例子

t= coder.newtype (enum_value深圳variable_dims创建一个编码器。类型对象,表示类的枚举值的集合enum_value

例子

t= coder.newtype (“class_name”创建一个编码器。ClassType对象作为类的对象class_name.新对象没有类的任何属性class_name

例子

t= coder.newtype(字符串)创建一个编码器。StringType对象作为字符串标量。字符串标量包含一段表示为字符向量的文本。若要指定字符向量的大小以及第二个维度是否为可变大小,请设置StringLength属性设置为所需的大小并设置VariableStringLength真正的.例如,t.StringLength = 10而且t.VariableStringLength = true指定字符串标量是可变大小的,上限为10。

例子

全部折叠

为可变大小的double类型矩阵创建一个类型。

t = coder.newtype (“双”,[2 3 4],[1 1 0])
t =编码器。PrimitiveType:2×:3×4 double % ':'表示可变大小的维度

为双精度矩阵创建一个类型,第一个维度是无界的,第二个维度是固定大小的。

t = coder.newtype (“双”(正,3))
t =编码器。PrimitiveType:正×3双

t = coder.newtype (“双”[正无穷,3],[1 0])
%也返回t = coder。PrimitiveType:inf×3 double % ':' indicates variable-size dimensions

为双精度矩阵创建一个类型,第一个维度无界,第二个维度具有可变大小,其上限为3.

t = coder.newtype (“双”[正无穷,3],[0 1])
t =编码器。PrimitiveType:inf×:3 double % ':'表示可变大小的维度

为具有可变大小字段的结构创建类型。

ta = coder.newtype (“int8”[1]);结核病= coder.newtype (“双”[1 - 2], [1]);t = coder.newtype (“结构”结构(“一个”助教,“b”、结核病)[1],[1])
t =编码器。StructType:1×:1 struct a: 1×1 int8 b: :1×:2 double % ':' indicates variable-size dimensions

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

ta = coder.newtype (“int8”[1]);结核病= coder.newtype (“双”[1 - 2], [1]);t = coder.newtype (“细胞”,{助教,结核病})
t =编码器。CellType1×2 heterogeneous cell f1: 1×1 int8 f2: :1×:2 double % ':' indicates variable-size dimensions

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

ta = coder.newtype (“int8”[1]);结核病= coder.newtype (“int8”[1 - 2], [1]);t = coder.newtype (“细胞”{助教,结核病},[1],[1])
t =编码器。CellType:1×:1 homogeneous cell base: :1×:2 int8 % ':' indicates variable-size dimensions

创建在代码生成中使用的新常量类型。

t = coder.newtype (“不变”, 42岁)
t =编码器。常数42

创建一个编码器。EnumType对象通过使用已有的MATLAB枚举的名称。

1.定义一个枚举MyColors.在MATLAB路径中,创建一个名为MyColors的文件,包含:

classdefMyColors < int32枚举绿(1),红(2),结束结束

2.创建一个编码器。EnumType对象。

t = coder.newtype (“MyColors”
t =编码器。EnumType1×1MyColors

创建用于代码生成的定点类型。

定点类型使用默认的fimath值。

t = coder.newtype (“embedded.fi”,numerictype(1,16,15),[1 2])
t =编码器。FiType1×2 embedded.fi DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15

为要在代码生成中使用的对象创建类型。

1.创建这个值类:

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

2.为具有相同属性的对象创建类型mySquare

t = coder.newtype (“mySquare”);

3.上一步创建了一个编码器。ClassType类型t的任何属性mySquare到它。以确保t的所有属性mySquare,更改属性的类型一边通过使用t.Properties

t.Properties.side = coder.typeof (int8 (3))
t =编码器。ClassType1×1mySquare一边: 1×1 int8

为要在代码生成中使用的字符串标量创建类型。

1.创建字符串标量类型。

t = coder.newtype (“字符串”);

2.指定的大小。

t.StringLength = 10;

3.使字符串可变大小。

t.VariableStringLength = true;

4.若要使字符串为无上限的可变大小,请设置StringLength

t.StringLength =正;

请注意

设置StringLength隐式集VariableStringLength真正的

输入参数

全部折叠

类型对象表示的值集的类。

例子:coder.newtype(“双”,[6,3]);

数据类型:一半|||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|结构体|表格|细胞|function_handle|分类|datetime|持续时间|calendarDuration|fi
复数的支持:是的

用于指定新结构类型中的字段的标量结构。

例子:coder.newtype(结构体,结构体(ta ' a ', ' b ', tb));

数据类型:结构体

单元阵列的编码器。类型对象,这些对象指定新单元格数组类型中的单元格类型。

例子:coder.newtype(“细胞”,{助教,结核病});

数据类型:细胞

指定类型对象的每个维度的大小向量。的深圳维度不能更改异构单元格数组的单元格数。

例子:coder.newtype(“int8”,[1 2]);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数的支持:是的

类的名称编码器。ClassType被创建。指定为字符向量或字符串标量。class_name必须是值类的名称。

例子:coder.newtype(“mySquare”)

数据类型:字符|字符串

的价值variable_dims真正的对于其中的维度深圳的上限对于所有其他维度。

逻辑向量,指定每个维度是可变大小(true)还是固定大小(false)。不能为异构单元格数组指定可变大小的尺寸。

例子:coder.newtype(“字符”,[1,10],[0,1]);

数据类型:逻辑

指定常量的实际值。

例子:coder.newtype(“常数”,41);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|结构体|表格|细胞

类的枚举值。

例子:coder.newtype(“MyColors”);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|结构体|表格|细胞|function_handle|分类|datetime|持续时间|calendarDuration|fi
复数的支持:是的

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:coder.newtype (embedded.fi, numerictype(15) 1, 16日,[1 - 2])

复杂的真正的创建一个编码器。类型对象,该对象可以表示复杂值。类型必须支持复杂数据。

指定的地方fimath.如果不指定fimath,代码生成器使用默认的fimath值。

只使用

t = coder.newtype (“embedded.fi”,深圳numerictype variable_dims、名称、值)

稀疏的真正的创建一个编码器。类型表示稀疏数据的对象。类型必须支持稀疏数据。

不可与

t = coder.newtype (“embedded.fi”,深圳numerictype variable_dims、名称、值)

gpu真正的创建一个编码器。类型对象,可以表示GPU输入类型。该选项需要GPU Coder™。

输出参数

全部折叠

一个新的编码器。类型对象。

限制

  • 为稀疏矩阵,coder.newtype删除可变尺寸尺寸的上界。

  • 对于GPU输入类型,只支持有限的数字和逻辑基类型。不支持标量GPU数组、结构、单元格数组、类、枚举类型、字符、半精度和定点数据类型。

  • 当使用coder.newtype表示GPU输入,GPU代码配置对象的内存分配(malloc)模式属性“离散”

提示

  • coder.newtype函数固定单例维度的大小,除非variable_dims参数显式指定单例维度具有可变大小。

    例如,此代码指定1 × -:10的双精度值。第一个维度(单例维度)具有固定的大小。第二个维度的大小是可变的。

    t = coder.newtype (“双”, 10 [1], 1)
    相比之下,这段代码指定了一个:1 * -:10 double。两个维度的大小都是可变的。
    t = coder.newtype (“双”, 10 [1], [1])

  • 对于一个MATLAB函数输入或输出信号的块维度、单维度不能有可变大小。

选择

coder.typeof

版本历史

介绍了R2011a

Baidu
map