主要内容

表的代码生成

table 数据类型是一种适用于列向数据或表数据的数据类型,这些数据通常以列的形式存储在文本文件或电子表格中。表由若干行向变量和若干列向变量组成。表中的每个变量可以具有不同的数据类型和大小,但有一个限制条件是每个变量的行数必须相同。有关详细信息,请参阅

在代码生成中使用表时,请遵守这些限制。

为代码生成定义表

要在用于代码生成的 MATLAB® 代码中定义表,请使用 table 函数。您也可以使用 array2tablecell2tablestruct2table 函数将数组、元胞数组和结构体转换为表。对于代码生成,您必须在创建表时提供表变量名称。表变量名称不必是有效的 MATLAB 标识符。变量名称可以包含任何 ASCII 字符(如逗号、破折号和空白字符)。

例如,假设 ABC 是 10×1 双精度数组,而 vnames 是列名称元胞数组。您可以为使用这些数组作为表变量创建表的函数生成代码。

function T = foo(A,B,C,vnames) %#codegen
    T = table(A,B,C,'VariableNames',vnames);
end

允许对表执行的操作

对于代码生成,您只能对表执行下面列出的操作。

运算示例附注

赋值运算符:=

T = table(A,B,C,'VariableNames',vnames);
T{:,1} = D;

代码生成不支持使用赋值运算符 = 进行以下操作:

  • 删除变量或行。

  • 添加变量或行。

索引操作

T = table(A,B,C,'VariableNames',vnames);
T(1:5,1:3);

代码生成支持按位置、变量或行名称进行索引,以及逻辑索引。

代码生成支持:

  • 带圆括号 () 的表索引。

  • 带花括号 {} 的内容索引。

  • 访问表变量的圆点表示法。

串联

T1 = table(A,B,C,'VariableNames',vnames);
T2 = table(D,E,F,'VariableNames',vnames);
T = [T1 ; T2];

代码生成支持表串联。

  • 对于垂直串联,表中的变量必须具有相同的名称,其顺序也需相同。

  • 对于水平串联,表必须具有相同的行数。如果表具有行名称,则它们必须具有相同的行名称,其顺序也需相同。

支持表的 MATLAB 工具箱函数

对于代码生成,您可以将表与以下 MATLAB 工具箱函数结合使用:

另请参阅

主题