Main Content

表的代码生成

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

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

为代码生成定义表

对于代码生成,请使用 table 函数。例如,假设您的 MATLAB® 函数的输入参数是三个具有相同行数的数组和一个具有变量名称的元胞数组。您可以创建一个包含这些数组作为表变量的表。

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

您可以使用 array2tablecell2tablestruct2table 函数将数组、元胞数组和结构体转换为表。例如,您可以将输入元胞数组转换为表。

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

对于代码生成,您必须在创建表时提供表变量名称。表变量名称不必是有效的 MATLAB 标识符。名称必须由 ASCII 字符组成,但可以包括任何 ASCII 字符(如逗号、破折号和空白字符)。

允许对表执行的操作

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

运算示例附注

赋值运算符:=

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 工具箱函数结合使用:

相关主题