在命令行指定单元格数组输入
要在命令行指定单元格数组输入,请使用与用于其他类型输入相同的方法。您可以:
控件提供示例单元格数组输入
arg游戏
选择codegen
命令。提供一个
编码器。CellType
反对arg游戏
选择codegen
命令。要创建一个编码器。CellType
对象,使用coder.typeof
.使用
编码器。常数
指定常量单元格数组输入。
对于代码生成,单元格数组分为同构数组和异构数组。看到单元格数组的代码生成.提供示例单元格数组时codegen
或coder.typeof
,函数确定单元格数组类型是同构还是异构。如果单元格数组元素具有相同的类和大小,coder.typeof
返回同构单元格数组类型。如果元素有不同的类,coder.typeof
返回异构单元格数组类型。对于某些单元格阵列,是同构还是异构的分类是模糊的。例如,{1[2 3]}的类型可以是1x2的异构类型。第一个元素是double,第二个元素是1x2 double。类型也可以是1x3同构类型,其中元素的类为double,大小为1x:2。对于这些模棱两可的案例,coder.typeof
使用启发式方法将类型分类为同类或异类。如果需要不同的分类,请使用编码器。CellType
makeHomogeneous
或makeHeterogeneous
方法。的makeHomogeneous
方法生成类型的同构副本。的makeHeterogeneous
方法生成类型的异构副本。
的makeHomogeneous
而且makeHeterogeneous
方法分别永久地将分类分配为同质和异构。以后不能使用这些方法之一创建具有不同分类的副本。
如果您有一个测试文件,您可以使用coder.getArgTypes
来确定输入类型。在类型的输出单元格数组中,对于单元格数组输入,coder.getArgTypes
返回一个编码器。CellType
对象。如果需要不同的分类(同构或异构),请使用makeHomogeneous
或makeHeterogeneous
方法。
通过示例指定单元格数组输入
中指定单元格数组输入的示例单元格数组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.typeof
Size和可变维度参数创建可变大小的齐次单元格数组类型。例如,下面的代码不使用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双
另请参阅
编码器。CellType
|coder.getArgTypes
|coder.newtype
|coder.resize
|coder.typeof