文档

在命令行指定单元格数组输入

要在命令行指定单元格数组输入,请使用与用于其他类型输入相同的方法。您可以:

  • 控件提供示例单元格数组输入arg游戏选择codegen命令。

  • 提供一个编码器。CellType反对arg游戏选择codegen命令。要创建一个编码器。CellType对象,使用coder.typeof

  • 使用编码器。常数指定常量单元格数组输入。

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

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

如果您有一个测试文件,您可以使用coder.getArgTypes来确定输入类型。在类型的输出单元格数组中,对于单元格数组输入,coder.getArgTypes返回一个编码器。CellType对象。如果需要不同的分类(同构或异构),请使用makeHomogeneousmakeHeterogeneous方法。

通过示例指定单元格数组输入

中指定单元格数组输入的示例单元格数组arg游戏选择codegen命令。

例如:

  • 指定一个1x3单元格数组,其元素具有类double:

    codegenmyfunctionarg游戏{{1 2 3}}报告

    输入参数是一个1x3的齐次单元格数组,其元素为1x1 double。

  • 指定一个1x2单元格数组,其第一个元素具有char类,第二个元素具有double类:

    codegenmyfunctionarg游戏{{' a ', 1}}报告

    输入参数是一个1x2的异构单元格数组,其第一个元素是1x1 char,第二个元素是1x1 double。

指定单元格数组输入的类型

若要指定单元格数组输入的类型,请使用coder.typeof要创建一个编码器。CellType对象。通过编码器。CellType反对arg游戏选择codegen命令。

例如:

  • 指定一个1x3单元格数组,其元素具有类double:

    T = code .typeof({1 2 3}); codegenmyfunctionarg游戏{t}报告

    输入参数是一个1x3的齐次单元格数组,其元素为1x1 double。

  • 指定一个1x2单元格数组,其第一个元素具有char类,第二个元素具有double类:

    T = code .typeof({“一个”1});codegenmyfunctionarg游戏{t}

    输入参数是一个1x2的异构单元格数组,其第一个元素是1x1 char,第二个元素是1x1 double。

您也可以使用高级功能coder.newtype要创建一个编码器。CellType对象。

复制一种字体

如果coder.typeof返回异构单元格数组类型,但您希望使用同构类型,请使用makeHomogeneous方法生成该类型的同构副本。

下面的代码创建了一个异构类型。

T = code .typeof({1 [2 3]})
T =编码器。CellType1x2 heterogeneous cell f0: 1x1 double f1: 1x2 double

要制作该类型的同构副本,使用:

t = makeHomogeneous(t)
T =编码器。CellType1×2 locked homogeneous cell base: 1×:2 double

或者,使用以下表示法:

t = makeHomogeneous(编码器。Typeof ({1 [2 3]}))
T =编码器。CellType1×2 locked homogeneous cell base: 1×:2 double

同构分类是锁定的(永久的)。以后不能使用makeHeterogeneous方法生成类型的异构副本。

如果一个类型的元素具有不同的类,例如char和double,则不能使用makeHomogeneous复制:复制该字体的相同副本

如果你使用coder.cstructname若要在生成的代码中为表示类型的结构类型指定名称,则不能创建该类型的同构副本。

制作类型的异构副本

如果coder.typeof返回同构单元格数组类型,但您需要异构类型,请使用makeHeterogeneous方法生成类型的异构副本。

下面的代码创建了一个同构类型。

T = code .typeof({1 2 3})
T =编码器。CellType1x3 homogeneous cell base: 1x1 double

要使类型异构,使用:

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

或者,使用以下表示法:

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

异构的分类是锁定的(永久的)。以后不能使用makeHomogeneous方法生成该类型的同构副本。

如果类型是可变大小的,则不能使用makeHeterogeneous对它进行异质复制。

指定可变大小的单元格数组输入

您可以通过以下方式指定可变大小的单元格数组输入:

  • coder.typeof调用。

    例如,指定一个变大小的单元格数组,其第一个维度是固定的,第二个维度的上限是5:

    T = code .typeof({1}, [1 5], [0 1])
    T =编码器。CellType1x:5 homogeneous cell base: 1x1 double

    对于具有相同类但大小不同的元素,您可以使用coder.typeofSize和可变维度参数创建可变大小的齐次单元格数组类型。例如,下面的代码不使用size和variable dimensions参数。这段代码为异构单元格数组创建一个类型。

    T = code .typeof({1 [2 3]})
    T =编码器。CellType1x2 heterogeneous cell f0: 1x1 double f1: 1x2 double

    下面的代码使用size和dimensions参数,为可变大小的同构类型单元格数组创建一个类型:

    T = code .typeof({1 [2 3]}, [1 5], [0 1])
    T =编码器。CellType1×:5 locked homogeneous cell base: 1×:2 double
  • 使用coder.resize

    例如,指定一个变大小的单元格数组,其第一个维度是固定的,第二个维度的上限是5:

    T = code .typeof({1});T =编码器。调整大小(t, [1 5], [0,1])
    T =编码器。CellType1x5 homogeneous cell base: 1x1 double

    你不能使用coder.resize使用异构单元格数组类型。

为异构单元阵列输入指定类型名称

异构单元格数组在生成的代码中表示为一个结构。若要在生成的代码中指定结构类型的名称,请使用coder.cstructname

例如,指定名称的名字对于生成代码中的单元格数组类型:

T = code .typeof({“一个”t = code .cstructname(t,“名字”
T =编码器。CellType1×2 locked heterogeneous cell myname f1: 1×1 char f2: 1×1 double

如果你使用coder.cstructname对于同构单元格数组类型,coder.cstructname返回类型的异构副本。但是,最好使用makeHeterogeneous的方法编码器。CellType对象生成同构单元格数组类型的异类副本。然后,你可以使用coder.cstructname使用类型的异构副本。

指定常量单元格数组输入

方法指定单元格数组输入为常量编码器。常数函数arg游戏选择codegen命令。例如:

codegenmyfunctionarg游戏{编码器。常量({'red', 1 'green', 2, 'blue', 3})}报告

输入是一个1x6的异构单元阵列。元素的大小和类别如下:

  • 1 x3字符

  • 1 x1双

  • 1 x5字符

  • 1 x1双

  • 1 x4字符

  • 1 x1双

另请参阅

||||

相关的例子

更多关于

这个话题有帮助吗?