表代码生成的限制
当你在MATLAB中创建表格时®用于代码生成的代码,必须使用array2table
,cell2table
,struct2table
,或表格
功能。有关更多信息,请参见表(MATLAB)。
对于表,代码生成有以下限制:
方法指定变量名
“VariableNames”
方法从输入数组创建表时的名值对参数表格
,array2table
,cell2table
,或struct2table
功能。您不必指定
“VariableNames”
方法预分配表时的参数表格
函数和“大小”
名称-值对的论点。表变量名必须是有效的MATLAB标识符。变量名必须以字母开头,且只能包含字母、数字和下划线。
你不能改变
VariableNames
,RowNames
,或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类定义.
另请参阅
array2table
|cell2table
|struct2table
|表格