时间表限制代码生成

在MATLAB中创建时间表时®代码,您打算用于代码生成,您必须使用创建它们array2timetabletable2timetable, 要么时间表功能。欲了解更多信息,请参阅时刻表(MATLAB)。

对于时间表,代码生成具有以下限制:

  • 行时间必须有持续时间数据类型。行时间不能有datetime数据类型。

  • 时间表的第一维度的名称是始终'时间'。第一个维度的名称也是个行时间,你可以参考使用点符号矢量的名称。

  • 属性指定变量名'VariableNames'属性从输入数组创建时间表时的名称-值对参数时间表array2timetable功能。

    您不必指定'VariableNames'参数预先分配时间表时时间表函数和'尺寸'名称 - 值对的参数。

  • 时间表变量名称必须是有效的MATLAB标识符。变量名必须以字母开头,只能包含字母、数字和下划线。

  • 创建时间表后,你不能改变的VariableNamesDimensionNames, 要么用户数据属性。

    当您创建时间表时,您可以指定'VariableNames'“RowTimes”输入参数来设置具有这些名称的属性。

  • 在指定时创建一个有规律的时间表'采样率''开始时间', 要么“步伐”名称 - 值对的参数,首先使用coder.Constant功能使值不变。如果你没有让他们常量,则该行的时间被认为是不规则的。

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

  • 如果你创建一个普通的时间表,并尝试设置不规则的排次,然后产生一个错误。

  • 要使用变量名建立时间表索引,首先使用coder.Constant功能,使的时间表不变。

    默认情况下,时间表的传递到生成的代码作为输入参数不是恒定的。甚至他们的变量和行时间不固定。如果时间表是不恒定的,那么使用的变量的索引操作会产生一个错误。你可以索引到一个时间表的变量使用,即使时间表不是恒定的数值或逻辑指标。

  • 传递时间表索引到所生成的代码作为输入参数,首先使用coder.Constant函数使指标进入时间表常数的第二个维度。如果进入第二个维度的索引不是常量,那么为变量建立索引会产生错误。

  • 如果索引使用的时间表持续时间值,或对象产生的timerangewithtol功能,则输出总是非常数与行的数目可变。

  • 如果你索引到一个有规律的时间表使用持续时间值,或对象产生的timerangewithtol功能,则输出总是被认为是不规则的。

  • 不能向时间表添加自定义元数据。的addproprmprop功能不被支持。万博1manbetx

  • 你不能改变的任务时间表的大小。例如,这个调用添加一个新行产生错误。

    函数TT = FOO()%#代码生成TT =时间表((1:3) '(1:3)',“RowTimes”,秒([0,5,10]),...'VariableNames',{'VAR1''VAR2'});TT {4:} = (5, 5);结束

    删除一行或通过分配的变量也产生一个错误。

  • 您不能在分配使用新行时间添加一个新行。例如,这个调用通过使用新行时间,而不是一个数字指标不产生错误添加一个新行,也不会添加新行。

    函数TT = FOO()%#代码生成TT =时间表((1:3) '(1:3)',“RowTimes”,秒([0,5,10]),...'VariableNames',{'VAR1''VAR2'});TT {秒(15),:} = [5,5];结束
  • 当你预分配的时间表,只能指定使用以下数据类型“VariableTypes”名称 - 值对的参数。

    数据类型名称

    在每个元素初始值

    '双''单'

    双链或单精度0

    'doublenan''doubleNaN'“singlenan”'singleNaN'

    双链或单精度为NaN

    “int8”“int16”'INT32'“int64”

    有符号8-、16-、32-或64位整数0

    'UINT8''UINT16'“uint32”'UINT64'

    无符号的8-,16-,32-,或64位整数0

    “逻辑”

    0

    '约会时间'

    的NaTdatetime值

    “持续时间”

    0秒,作为持续时间值

    'cellstr'

    {"}(具有0逐0字符阵列单元)

    如果您指定“字符”作为数据类型,则时间表预先分配相应的变量作为特征向量的单元阵列,而不是作为一个字符阵列。最好的做法是避免创建时间表变量是字符数组。

  • 在垂直连接时间表时,它们必须具有相同的变量名,并且具有相同的顺序。在MATLAB中,变量名必须是相同的,但是在时间表中可以是不同的顺序。

  • 当你水平串联时间表,他们必须在同一顺序相同的行倍。在MATLAB中,行时间必须是相同的,但可在时间表不同的订单。

  • 如果两个时间段有一个是N d电池阵列的变量,那么你就不能垂直串联的时间表。

  • 不能使用大括号从N-D单元格数组的多个时间表变量中提取数据,因为此操作是水平连接。

适用于类的限制也适用于时间表。欲了解更多信息,请参阅用于代码生成的MATLAB类定义

也可以看看

||

相关的话题