Coder.typeof.

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

描述

例子

笔记

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

type_obj.= coder.typeof(V.创建派生的对象编码器.Type.表示类型V.代码生成。使用Coder.typeof.仅指定输入参数类型。把它和Codegen.功能- args.期权或马铃薯®编码器™通过提供示例代码定义输入类型时项目。请勿在MATLAB代码中使用它,您打算从中生成代码。

例子

type_obj.= coder.typeof(V.SZ.variable_dims返回修改后的副本type_obj.= coder.typeof(V.)具有上限尺寸指定SZ.和可变尺寸指定variable_dims

type_obj.= coder.typeof(V.,'gpu',true)创建派生的对象编码器.Type.代表V.作为代码生成的GPU输入类型。此选项需要有效的GPU编码器™许可证。

例子

type_obj.= coder.typeof(type_obj.回报type_obj.本身。

例子

全部收缩

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

coder.typeof(的(5、6)
ans = coder.primitivetype 5×6双倍

Coder.typeof.(0,[5 6])
ans = coder.primitivetype 5×6双倍

为双精度浮点数的可变大小矩阵创建类型。

Coder.typeof((3,3),[],1)
ans = coder.primiteType:3×:3 double%':'表示可变尺寸尺寸

为具有固定尺寸和可变尺寸的矩阵创建类型。

Coder.typeof(0,[2,3,4],[1 0 1])
ans = coder.primitiveType:2×3×:4双倍

Coder.typeof(10,[1 5],1)
ans = coder.primitiveType 1×:5 double%':'表示可变尺寸的尺寸

为双打矩阵创建一个类型,第一维无界,第二尺寸,具有固定大小。

Coder.typeof(10,[INF,3])
ans = coder.primitiveType:inf×3 double%':'表示可变尺寸的尺寸

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

Coder.typeof(10,[INF,3],[0 1])
ANS = Coder.primitiveType:INF×:3双倍

将固定大小的矩阵转换为可变大小的矩阵。

Coder.typeof(1/5),[],1)
ans = coder.primiteType:5×:5 double%':'表示可变尺寸尺寸

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

x.a =编码器。T.ypeof(0,[3 5],1); x.b = magic(3); coder.typeof(x)
ans =编码器。StructType1×1塑造a: :3×:5 double b: 3×3 double % ':' indicates variable-size dimensions

创建一个嵌套结构(一个结构作为另一个结构的字段)。

s = struct('一种',双(0),'B'单(0));管理员。x = coder.typeof(年代);Supers.y =单(0);Coder.typeof(超级)
ans =编码器。StructType1×1塑造x: 1×1 struct a: 1×1 double b: 1×1 single y: 1×1 single

创建一个包含可变大小结构数组的结构作为字段。

s = struct('一种',双(0),'B'单(0));supers.x = coder.typeof(s,[1 inf],[0 1]);Supers.y =单(0);Coder.typeof(超级)
ans =编码器。StructType1×1塑造x: 1×:inf struct a: 1×1 double b: 1×1 single y: 1×1 single % ':' indicates variable-size dimensions

为具有可变大小字段的同构单元格数组创建类型。

a = coder.typeof(0,[3 5],1); b = magic(3); coder.typeof({a b})
ANS = Coder.celttype 1×2同质细胞基数:3×:5 double%':'表示可变尺寸尺寸

为异构单元阵列创建类型。

a = coder.typeof('一种');b = coder.typeof(1);Coder.typeof({a b})
ANS = Coder.celltype 1×2异质电池F1:1×1炭F2:1×1双

从具有相同类但大小不同的单元格数组创建大小可变的同类单元格数组类型。

1.为包含两个不同大小的字符向量的单元格数组创建类型。单元阵列类型是异构的。

coder.typeof({'aa''BBB'})
ANS = Coder.celltype 1×2异构电池F1:1×2 CHAR F2:1×3炭

2.使用相同的单元格阵列输入创建类型。这次,指定单元格数组类型具有可变大小的维度。细胞阵列类型是均匀的。

coder.typeof({'aa''BBB'},[1,10],[0,1])
ANS = Coder.celltype 1×:10锁定的同质细胞基数:1×:3 CHAR%':'表示可变尺寸尺寸

将固定大小的数组更改为有界的可变大小的数组。

为值类对象创建一种类型。

1.创建此值类:

Classdef.MySquare.特性一面;结尾方法功能obj = mySquare (val)如果nargin> 0 obj.side = val;结尾结尾功能a = calcarea(obj)a = obj.side * obj.side;结尾结尾结尾

2.创建一个对象MySquare.

sq_obj = coder.typeof(mysquare(4))
sq_obj = coder.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 =“mystring”;

创建一种类型S.

t = coder.typeof;

制作T.适应,分配价值财产T.对于具有所需的上限的可变大小字符向量的类型。例如,指定该类型T.变量大小,上限为10。

t.properties.value = coder.typeof('一种',[110],[0 1]);

指明T.是可变的大小,没有上限:

t.properties.value = coder.typeof('一种',[1款]);

通过类型Codegen.通过使用- args.选择。

Codegen.myfunction.-  args.{T}

输入参数

全部收缩

V.可以是matlab数字,逻辑,char,枚举或固定点数组。V.也可以是包含先前类型的单元数组,结构或值类。

什么时候V.是一个单元数组,其元素具有相同的类但不同尺寸,如果指定可变大小维度,Coder.typeof.创建一个均匀的单元阵列类型。如果元素有不同的类,Coder.typeof.报告错误。

例子:Coder.typeof((5,6));

数据类型:一半|单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64|逻辑|字符|细绳|塑造|桌子|细胞|function_handle.|分类|约会时间|期间|日历|FI.
复数支持:金宝app是的

指定类型对象的每个维度的大小向量。

如果SZ.指定对于尺寸,那么尺寸的大小是无界的,尺寸是可变的大小。什么时候SZ.[],上限V.不要换。

如果未指定大小,则SZ.采取默认维度V.

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

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64

指定每个维度是否为可变大小(true)或固定大小(false)的逻辑向量。对于单元格数组,如果元素具有不同的类,则无法指定可变大小的维度。

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

一个标量variable_dims适用于所有尺寸。然而,如果variable_dims1,则单个维度的大小保持不变。

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

数据类型:逻辑

编码器.Type.对象表示类型V.代码生成。

例子:type_obj = coder.typeof(1,6));

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64|逻辑|字符|细绳|塑造|桌子|细胞|function_handle.|分类|约会时间|期间|日历|FI.
复数支持:金宝app是的

输出参数

全部收缩

编码器.Type.对象表示类型V.代码生成。

例子:type_obj = coder.typeof(1,6));

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64|逻辑|字符|细绳|塑造|桌子|细胞|function_handle.|分类|约会时间|期间|日历|FI.
复数支持:金宝app是的

限制

  • 对于稀疏矩阵,Coder.typeof.丢弃可变尺寸尺寸的上限。

  • 对于代表GPU阵列,仅支持界限数字和逻辑基础类型。金宝app不支持SCOLAR GPU阵列,结构,单元格,类,枚举类型,字符,半精度和定点数据类型。金宝app

  • 使用时Coder.typeof.要代表GPU阵列,必须将GPU代码配置对象的内存分配(Malloc)模式属性设置为'离散的'

提示

  • Coder.typeof.修正了单个维度的大小,除非variable_dims参数明确指定单例维度具有变量大小。

    例如,以下代码指定一个1-of -: 10 double。第一尺寸(单身尺寸)具有固定尺寸。第二维具有可变大小。

    t = coder.typeof(5,[1 10],1)
    相比之下,此代码指定A:1-BY - :10 DOUBLE。这两个尺寸都具有变量尺寸。
    t = coder.typeof(5,[1 10],[1 1])

    笔记

    为一个Matlab功能块,输入或输出信号的单例尺寸不能具有变量大小。

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

  • 对于单元格阵列类型,Coder.typeof.确定单元阵列类型是否是均匀的或异质的。

    如果小区数组元素具有相同的类和大小,Coder.typeof.返回同构单元格数组类型。

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

    对于一些细胞阵列,分类为均匀或异质是模糊的。例如,{1 [2 3]}的类型可以是1×2异构类型,其中第一元件是双,第二元件是1×2双元件。该类型也可以是1x3均匀类型,其中元件具有类双倍和1x:2。对于这些暧昧的案件,Coder.typeof.使用启发式来将类型分类为均匀或异质。如果您想要不同的分类,请使用coder.celltypemakehomeneous或者makesheternoyous使用您想要的分类进行类型的方法。这makehomeneous方法制作类型的同质副本。这makesheternoyous方法是一种类型的异构拷贝。

    makehomeneousmakesheternoyous方法总是把分类划分为异质和同质。以后不能使用这些方法之一来创建具有不同分类的副本。

  • 在使用GPU数组类型的代码生成期间,如果对入口点函数的一个输入是GPU阵列类型,则输出变量是所有GPU数组类型,只要它们被支持GPU代码生成。金宝app例如。如果入口点函数返回a塑造因为塑造时,生成的代码金宝app将返回一个CPU输出。但是,如果返回支持的矩阵类型金宝app,则生成的代码将返回GPU输出。

在R2011A介绍