主要内容

代码生成的时间表的限制

如果您创建时间表,修改它们,或者使用时间表在MATLAB函数®你打算让代码生成的代码,然后接下来的部分将描述代码生成有限制。限制也适用于时间表适用于类。类限制的更多信息,请参阅MATLAB类定义代码生成

创建时间表的限制

如果你的MATLAB代码创建时间表,那么代码生成了这些限制。

输入用于创建时间表

限制

任何输入

  • 第一个维度的名称的时间表“时间”除非你指定使用“DimensionNames”名称-值参数。

    第一个维度的名称也行乘以向量的名称,你可以参考使用点符号。

  • 当创建一个常规时间表“SampleRate”,“开始时间”,或“步伐”名称-值参数传递的一个入口点函数,第一次使用coder.Constant函数的值不变。如果你不让他们常数,然后行乘以被认为是不规则的。

  • 如果您创建了一个规律的时间表,和您尝试设置不规则行乘以,那么将产生错误。

  • 如果你创建一个不规则的时间表,那么它仍然是不规则的即使你设置它的采样率或时间步。

  • 时间表变量名称不需要有效的MATLAB标识符。名称必须是由ASCII字符,包括逗号,破折号,空格字符。

时间表从输入创建数组

  • 您必须指定变量名称使用“VariableNames”名称-值参数在创建时间表从输入数组使用时间表array2timetable功能。

时间表使用预先分配创建变量

  • 你不需要指定“VariableNames”当你preallocate时间表使用参数时间表函数和“大小”名称-值参数。

  • 您可以指定只通过使用以下数据类型“VariableTypes”名称-值参数:

    • “双”

    • “单一”

    • “doublenan”“doubleNaN”

    • “singlenan”“singleNaN”

    • “int8”,“int16”,“int32”,或“int64”

    • “uint8”,“uint16”,“uint32”,或“uint64”

    • “逻辑”

    • “datetime”

    • “持续时间”

    • “cellstr”

    • “字符”

修改时间表的限制

如果MATLAB代码修改数据的时间表,它的行次,或它的属性,那么代码生成这些限制。

时间表操作或属性

限制

VariableNames,DimensionNames,或用户数据属性

  • 在您创建一个时间表,你不能改变VariableNames,DimensionNames,或用户数据属性。

    当您创建一个时间表,你可以指定“VariableNames”,“DimensionNames”,“RowTimes”在这些名字输入参数来设置属性。

时间表指标作为输入参数生成的代码

  • 通过时间表指定变量的指数为生成的代码作为输入参数,首先使用coder.Constant函数的指数进入第二维度的时间常数。如果指数进入第二维度并不是常数,然后索引变量产生一个错误。

  • 如果一个时间表排时间持续时间值,你通过使用索引它持续时间值或对象产生的timerangewithtol函数,然后用一个变量输出非常数的行数。

  • 如果一个规律的时间表已经排时间持续时间值,你通过使用索引它持续时间值或对象产生的timerangewithtol函数,然后输出被认为是不规则的。

自定义元数据

  • 你不能添加自定义元数据的时间表。的addproprmprop不支持的功能。金宝app

作业,改变大小的时间表

  • 你不能改变大小的作业时间表。例如,这叫添加一个新行产生一个错误。

    函数TT = foo ()% # codegenTT =时间表((1:3)”,(1:3)”,“RowTimes”秒([0、5、10]),“VariableNames”,{“Var1”,“Var2”});TT {4:} = (5, 5);结束

    删除一行或一个变量赋值也会产生一个错误。

  • 您不能添加一个新行通过使用一个新行赋值。例如,这叫添加一个新行通过使用一个新行时间而不是一个数字索引不会产生一个错误,但也不添加新行。

    函数TT = foo ()% # codegenTT =时间表((1:3)”,(1:3)”,“RowTimes”秒([0、5、10]),“VariableNames”,{“Var1”,“Var2”});TT{秒(15):}= (5,5);结束

垂直连接

  • 当你垂直连接的时间表,他们必须有相同的变量名相同的顺序。在MATLAB中,变量名必须相同,但可以在不同订单的时间表。

横向连接

  • 横向连接时间表时,他们必须有相同的行乘以相同的顺序。在MATLAB中,行乘以必须相同,但可以在不同订单的时间表。

时间表一天细胞数组变量

  • 如果两个时间表有一天细胞数组变量,那么你不能垂直连接的时间表。

  • 不能使用花括号中提取数据从多个时间表一天细胞数组变量,因为这种操作是水平的连接。

使用时间表功能限制

如果你的MATLAB代码使用中列出的功能表,那么代码生成这些限制。

函数

限制

convertvars

  • 不支持函数处理。金宝app

  • 第二个和第三个输入参数(var数据类型)必须是常数。

  • 你不能指定数据类型作为“细胞”,“cellstr”,或“字符”

innerjoin

  • 一般来说,输入时间表不能有任何nonkey变量有相同的名称。然而,你可以加入输入时间表如果指定的子集“LeftVariables”“RightVariables”名称-值参数。指定这些参数都不出现变量名“LeftVariables”“RightVariables”

  • 这些名称-值参数的值必须是常数:

    • “钥匙”

    • “LeftKeys”

    • “RightKeys”

    • “LeftVariables”

    • “RightVariables”

  • 不支持嵌套的时间表。金宝app

相交

setdiff

setxor

联盟

  • 这些功能支持无序时间表在所有情况金宝app下。你不需要指定“稳定”选择。

isregular

  • 使用coder.Constant输入参数timeComponent常数。

  • 输入参数timeComponent不能一个日历单元。如果你指定它,那么它的价值必须“时间”

issortedrows

  • 输入参数var必须是常数。

  • 如果任何时间表变量有多个列,那么这些变量必须有固定的宽度。

加入

  • 一般来说,输入时间表不能有nonkey变量有相同的名称。然而,你可以加入的子集时间表如果指定名称的输入参数:

    • “KeepOneCopy”,你将从左边输入变量列表的时间表。

    • “LeftVariables”“RightVariables”,你从左边输入变量列表的时间表或正确的输入时间表,但不能两者兼得。

  • 这些名称-值参数的值必须是常数:

    • “钥匙”

    • “LeftKeys”

    • “RightKeys”

    • “LeftVariables”

    • “RightVariables”

    • “KeepOneCopy”

  • 不支持嵌套的时间表。金宝app

movevars

  • 输入参数var不能包含重复的变量名。

outerjoin

  • 输入时间表不能用相同的名称,除非有关键变量的值“MergeKeys”真正的(逻辑1)。

  • 一般来说,输入时间表不能有任何nonkey变量有相同的名称。然而,你可以加入输入时间表如果指定的子集“LeftVariables”“RightVariables”名称-值参数。指定这些参数都不出现变量名“LeftVariables”“RightVariables”

  • 这些名称-值参数的值必须是常数:

    • “钥匙”

    • “LeftKeys”

    • “RightKeys”

    • “MergeKeys”

    • “LeftVariables”

    • “RightVariables”

    • “类型”

  • 不支持嵌套的时间表。金宝app

调整时间

同步

  • 输出的行乘以时间表被认为是不规则,即使同步行乘以服务,也有固定的时间步。

  • “makima”不支持插值法。金宝app

  • 如果VariableContinuity属性输入时间表不是常数,然后这个函数忽略了它们。

  • “周”,“月”,“季度”不支持的时间步骤。金宝app

    • 如果输入时间表有行乘以datetime值,那么“每天”“年”时间步长也不支持。金宝app

sortrows

  • 输入参数var必须是常数。

  • 如果tblA一个变量,是一个单元阵列的性格与多个列向量,然后你不能使用该变量中的值排序的时间表。

splitvars

  • 的值“NewVariableNames”名称-值参数必须是常数。

  • 分裂不能有一个变量的变量的列数。

堆栈

  • 第二个输入参数,var,必须是常数。

  • 的值“ConstantVariables”,“NewDataVariableName”,“IndexVariableName”名称-值参数必须是常数。

timerange

  • 输入参数unitOfTime不支持。金宝app

unstack

  • “NewDataVariableNames”名称-值参数必须被指定。它的值必须是常数。

  • var实例变量输入参数(数据变量和指标变量)必须是常数。

  • 如果您指定分组变量和常数变量,然后他们必须是常数。

  • 如果你指定一个聚合函数,那么它必须是常数。

  • 如果输入是一个时间表,定期行乘以和指定分组变量不包含行次,然后输出时间表可能不规则行乘以。即使输出之间的间隔一行乘以看起来相同,输出时间表认为行乘以向量的不规则。

  • 如果一个变量输入的时间表是一个单元阵列的特征向量,然后unstack填充空的细胞在相应的输出变量与1-by-0字符数组生成的代码。在MATLAB中,unstack填补这些空白0-by-0字符数组。

  • unstack函数不支持代码生成时输入时间表的变量金宝app是一个异构单元阵列,不能转化为齐次单元阵列。

    • 如果输入一个变量,是一个均匀的细胞数组,或者是可以相互转化的,那么“AggregationFunction”名称-值参数必须被指定。的默认值“AggregationFunction”“独特的”。但是,独特的功能不支持细胞阵列。金宝app

varfun

  • 函数处理输入,函数,必须是常数。

  • 同时可以输入函数处理varfun本身,它们不能被输入到你的入口点函数。指定函数在针对代码生成的代码。有关更多信息,请参见函数处理限制代码生成

  • 所有名称-值参数的值必须是常数。

  • “ErrorHandler”名称-值参数不支持代码生成。金宝app

  • 适应不支持输入参数。金宝app

  • 如果您指定“GroupingVariables”,然后输出始终是一个不规则的时间表。

  • 在生成的代码分组变量不能有重复的值。

  • 你不能指定的值“OutputFormat”作为“细胞”如果你指定“GroupingVariables”名称-值参数和函数返回为每个变量指定一个不同的数据类型“数据源”

  • 如果指定团体和团体的数量是在编译时不知道,而且这个数字是零,那么空的双变量的输出可能大小1-by-0在生成的代码。在MATLAB中,这些变量0-by-0大小。

另请参阅

||

相关的话题