文档

表代码生成的限制

当你在MATLAB中创建表格时®用于代码生成的代码,必须使用array2tablecell2tablestruct2table,或表格功能。有关更多信息,请参见(MATLAB)。

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

  • 方法指定变量名“VariableNames”方法从输入数组创建表时的名值对参数表格array2tablecell2table,或struct2table功能。

    您不必指定“VariableNames”方法预分配表时的参数表格函数和“大小”名称-值对的论点。

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

  • 你不能改变VariableNamesRowNames,或DimensionNames属性。

    您可以指定“VariableNames”而且“RowNames”在创建表时输入参数。这些输入参数指定属性。

  • 要使用变量或行名在表中建立索引,首先要使用编码器。常数函数。

    默认情况下,作为输入参数传入生成代码的表不是常量。甚至它们的变量和行名也不是常量。如果表不是常量,则使用变量或行名进行索引会产生错误。即使表不是常量,也可以使用数值或逻辑索引向表建立索引。

  • 要将表索引作为输入参数传递到生成的代码中,首先使用编码器。常数函数。如果表索引不是常量,则对变量进行索引会产生错误。

  • 不能向表中添加自定义元数据。的addprop而且rmprop不支持函数。金宝app

  • 不能通过赋值来更改表的大小。例如,添加新行会产生错误。

    函数T = foo ()% # codegenT =表((1:3)”,(1:3)”,“VariableNames”,{“Var1”“Var2”});T (4,2) = 5;结束

    删除行或变量也会产生错误。

  • 类预先分配表时,只能指定以下数据类型“VariableTypes”名称-值对的论点。

    数据类型名称

    每个元素的初始值

    “双”“单一”

    双或单精度0

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

    双或单精度

    “int8”“int16”“int32”“int64”

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

    “uint8”“uint16”“uint32”“uint64”

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

    “逻辑”

    0

    “持续时间”

    0秒,作为持续时间值

    “cellstr”

    {"}(带有0乘0字符数组的单元格)

    如果您指定“字符”那么,作为数据类型表格将相应的变量预分配为字符向量的单元格数组,而不是字符数组。最佳实践是避免创建作为字符数组的表变量。

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

  • 当水平连接表时,如果表具有行名,则它们必须具有相同的行名,并且顺序相同。在MATLAB中,行名必须是相同的,但可以是不同的顺序。

  • 如果两个表的变量是N-D单元格数组,则表不能垂直连接。

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

适用于类的限制也适用于表。有关更多信息,请参见代码生成的MATLAB类定义

另请参阅

|||

相关的话题