主要内容

coder.typeof

创建coder.Type对象来表示一个入口点函数输入的类型

描述

例子

请注意

你也可以创建和编辑coder.Type通过使用编码器类型编辑器对象交互。看到创建和编辑输入类型使用编码器类型编辑器

type_obj= coder.typeof (v)来自创建一个对象coder.Type代表的类型v代码生成。使用coder.typeof只指定输入参数类型。使用它的codegen函数arg游戏选择或MATLAB®编码器™项目当你定义一个输入类型提供一个示例代码。不使用它在MATLAB代码你打算生成代码。

例子

type_obj= coder.typeof (v,深圳,variable_dims)返回一个修改后的副本type_obj= coder.typeof (v)和上限尺寸规定深圳和可变尺寸规定variable_dims

type_obj= coder.typeof (v,Gpu,真的)来自创建一个对象coder.Type代表v作为代码生成的GPU输入类型。这个选项需要一个有效的GPU编码器™许可证。

例子

type_obj= coder.typeof (type_obj)返回type_obj本身。

例子

全部折叠

创建一个类型一个简单的固定大小5 x6矩阵的双打。

coder.typeof(的(5、6)
ans =编码器。PrimitiveType 5×6双

coder.typeof(0,[5 6])
ans =编码器。PrimitiveType 5×6双

创建一个类型一个适应矩阵的双打。

coder.typeof(的(3、3)[],1)
ans =编码器。PrimitiveType: 3×3双%’:‘表明适应维度

创建一个类型一个矩阵与固定大小和适应维度。

coder.typeof(0,[2,3,4],[1 0 1])
ans =编码器。PrimitiveType: 2×3×4双

coder.typeof(10,[1 5],1)
ans =编码器。PrimitiveType 1×: 5双%’:‘表明适应维度

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

(正,3)coder.typeof(10日)
ans =编码器。PrimitiveType:正×3双%’:‘表明适应维度

创建一个类型一个矩阵的双打,第一维无界,第二维度与变量大小的上限为3。

coder.typeof(10,[inf,3],[0 1])
ans =编码器。PrimitiveType: inf×3双

固定大小的矩阵转换为适应矩阵。

coder.typeof(的(5,5),[],1)
ans =编码器。PrimitiveType: 5×5双%’:‘表明适应维度

创建一个类型为结构适应可变字段。

x。一个= coder.typeof (0,[3 5],1); x.b = magic(3); coder.typeof(x)
ans =编码器。StructType 1×1结构::3×:5双b: 3×3双%‘:’表明适应维度

创建一个嵌套结构(结构作为一个领域的另一个结构)。

S =结构(“一个”、双(0)“b”单(0));管理员。x = coder.typeof(年代);管理员。y =单(0);coder.typeof(管理员)
ans =编码器。StructType 1×1 struct x: 1×1结构:1×1双b: 1×1单y: 1×1单

创建一个包含一系列适应可变的结构作为一个领域的结构。

S =结构(“一个”、双(0)“b”单(0));管理员。x =编码器。typeof(S,[1 inf],[0 1]); SuperS.y = single(0); coder.typeof(SuperS)
ans =编码器。StructType 1×1 struct x: 1×:正结构:1×1双b: 1×1单y: 1×1单%‘:’表明适应维度

创建一个类型一个均质单元阵列适应可变字段。

一个= coder.typeof (0,[3 5],1); b = magic(3); coder.typeof({a b})
ans =编码器。CellType 1×2均匀的细胞基础::3×:5双%‘:’表明适应维度

创建一个类型一个异构单元阵列。

一个= coder.typeof (“一个”);b = coder.typeof (1);coder.typeof ({a b})
ans =编码器。f1 CellType 1×2异构单元:1×1字符f2: 1×1双

创建一个适应均匀单元阵列类型从一个细胞数组类相同,但大小不同。

1。创建一个类型为单元阵列,其中包含两个特征向量与不同的大小。细胞数组类型是异构的。

coder.typeof ({“aa”,“bbb”})
ans =编码器。f1 CellType 1×2异构单元:1×2 char f2: 1×3字符

2。创建一个通过使用相同的单元阵列的输入类型。这一次,指定单元阵列类型有适应维度。单元阵列类型是均匀的。

coder.typeof ({“aa”,“bbb”},[1,10],[0,1])
ans =编码器。CellType 1×10锁定均匀的细胞基础:1×:3字符%‘:’表明适应维度

改变一个固定大小的数组有界,适应可变数组。

创建一个类对象类型值。

1。创建这个值类:

classdefmySquare属性一面;结束方法函数obj = mySquare (val)如果输入参数个数> 0 obj。一边= val;结束结束函数a =钙质海绵纲(obj) = obj。* obj.side;结束结束结束

2。创建一个对象的mySquare

sq_obj = coder.typeof (mySquare (4))
sq_obj =编码器。ClassType 1×1 mySquare: 1×1双

3所示。创建一个类型的对象具有相同的属性sq_obj

t = coder.typeof (sq_obj)
t =编码器。ClassType 1×1 mySquare: 1×1双

或者,您可以创建类定义的类型:

t = coder.typeof (mySquare (4))
t =编码器。ClassType 1×1 mySquare: 1×1双

定义一个字符串标量。例如:

s =“就是”;

创建一个类型年代

t = coder.typeof(年代);

分配StringLength属性的类型对象字符串长度的上界和设置VariableStringLength真正的。指定类型的对象t是适应10的一个上界。

t。StringLength = 10;t。VariableStringLength = true;

指定t适应没有一个上限:

t。StringLength =正;
这个自动设置VariableStringLength财产真正的

通过类型codegen通过使用arg游戏选择。

codegenmyFunctionarg游戏{t}

输入参数

全部折叠

v可以是一个MATLAB数字、逻辑,char,枚举或定点数组。v也可以是细胞数组、结构、类或价值包含前面的类型。

v单元阵列的元素有相同的类但大小不同,如果您指定适应维度,coder.typeof创建一个均质单元阵列类型。如果元素有不同的类,coder.typeof报告一个错误。

例子:coder.typeof ((5、6));

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

尺寸向量指定对象类型的每个维度。

如果深圳指定一个维度,然后维度是无限维度的大小是可变的大小。当深圳[]的上界v不改变。

如果没有指定尺寸,深圳需要的默认维度v

例子:coder.typeof (0, (5、6));

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

逻辑向量指定每个维度是否变量大小(真正的)或固定大小的(错误的)。单元阵列,如果元素有不同的类,你不能指定适应维度。

如果你不指定variable_dims输入参数,类型的有限尺寸是固定的。

一个标量variable_dims适用于所有尺寸。然而,如果variable_dims1单维度的大小是固定的。

例子:coder.typeof(0,[2,3,4],[1 0 1]);

数据类型:逻辑

coder.Type对象表示的类型v代码生成。

例子:type_obj = coder.typeof ((5、6));

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

输出参数

全部折叠

coder.Type对象表示的类型v代码生成。

例子:type_obj = coder.typeof ((5、6));

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

限制

  • 为稀疏矩阵,coder.typeof为适应维度滴上界。

  • 用于表示GPU数组,只支持有限的数字和逻辑基本类型。万博1manbetx标量GPU数组、结构、cell-arrays类、枚举类型、性格,half-precision和定点不支持的数据类型。万博1manbetx

  • 当使用coder.typeof代表GPU数组的内存分配(malloc)模式属性GPU代码配置对象必须设置“离散”

提示

  • coder.typeof补丁的大小,除非单维度variable_dims参数显式地指定单维度有一个变量的大小。

    例如,下面的代码指定1 -:10双。第一个维度(单维度)具有固定的大小。第二个维度有一个变量的大小。

    t =编码器。typeof(5,[1 10],1)
    相比之下,这段代码指定了一个:1 -:10双。尺寸都有一个变量的大小。
    t =编码器。typeof(5,[1 10],[1 1])

    请注意

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

  • 如果您已经指定一个输入变量的类型,通过使用一种功能,不使用coder.typeof除非你还想指定大小。例如,而不是coder.typeof(单(0)),使用语法单(0)

  • 对于单元阵列类型,coder.typeof确定单元阵列类型是同构或异构。

    如果细胞数组元素具有相同的类和大小,coder.typeof返回一个均质单元阵列类型。

    如果元素有不同的类,coder.typeof返回一个异构单元阵列类型。

    对于某些细胞阵列,分类同构或异构是模棱两可的。例如,{1(2 3)}的类型可以是1 x2异构类型的第一个元素是两倍,第二个元素是1 x2的两倍。类型也可以是1 x3均匀大小和类型的元素类双1 x: 2。对于这些模棱两可的情况下,coder.typeof使用启发式同构或异构类型进行分类。如果你想要一个不同的分类,使用coder.CellTypemakeHomogeneousmakeHeterogeneous的方法来做你想要的类型的分类。的makeHomogeneous方法使均匀的副本类型。的makeHeterogeneous方法使异构类型的副本。

    makeHomogeneousmakeHeterogeneous永久把分类作为异构和均匀的方法。你以后不能使用这些方法来创建一个副本,有不同的分类。

  • 在代码生成与GPU数组类型,如果一个GPU的入口点函数的输入数组类型,然后输出变量都是GPU数组类型,只要支持GPU代码生成。万博1manbetx为例。如果入口点函数返回结构体因为结构体不支持,生成的万博1manbetx代码返回一个CPU输出。然而,如果一个支持矩阵类型返万博1manbetx回,然后生成的代码返回一个GPU输出。

版本历史

介绍了R2011a