文档帮助中心
本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。
将结构体数组转换为表
T = struct2table(S)
T = struct2table(S,Name,Value)
示例
T = struct2table(S) 将结构体数组 S 转换为表 T。S 的每个字段成为 T 中的一个变量。
T
S
T = struct2table(S,Name,Value) 使用由一个或多个 Name,Value 对组参数指定的其他选项从结构体数组 S 创建表。
Name,Value
例如,可以指定要包括在表中的行名称。
全部折叠
使用默认选项将标量结构体转换为表。
创建一个结构体数组 S。
S.Name = {'CLARK';'BROWN';'MARTIN'}; S.Gender = {'M';'F';'M'}; S.SystolicBP = [124;122;130]; S.DiastolicBP = [93;80;92]; S
S = struct with fields: Name: {3x1 cell} Gender: {3x1 cell} SystolicBP: [3x1 double] DiastolicBP: [3x1 double]
标量结构体 S 具有四个字段,每个字段具有三行。
将结构体数组转换为表。
T=3×4 table Name Gender SystolicBP DiastolicBP __________ ______ __________ ___________ {'CLARK' } {'M'} 124 93 {'BROWN' } {'F'} 122 80 {'MARTIN'} {'M'} 130 92
S 中的结构体字段名称成为输出表中的变量名称。T 的大小为 3×4。
将变量的 Name 更改为行名称,方法是修改表属性 T.Properties.RowNames,然后删除变量 Name。
Name
T.Properties.RowNames
T.Properties.RowNames = T.Name; T.Name = []; T
T=3×3 table Gender SystolicBP DiastolicBP ______ __________ ___________ CLARK {'M'} 124 93 BROWN {'F'} 122 80 MARTIN {'M'} 130 92
创建一个非标量结构体数组 S。
S(1,1).Name = 'CLARK'; S(1,1).Gender = 'M'; S(1,1).SystolicBP = 124; S(1,1).DiastolicBP = 93; S(2,1).Name = 'BROWN'; S(2,1).Gender = 'F'; S(2,1).SystolicBP = 122; S(2,1).DiastolicBP = 80; S(3,1).Name = 'MARTIN'; S(3,1).Gender = 'M'; S(3,1).SystolicBP = 130; S(3,1).DiastolicBP = 92; S
S=3×1 struct array with fields: Name Gender SystolicBP DiastolicBP
S 是具有四个字段的 3×1 结构体数组。
使用 'AsArray',true 基于其字段具有不同行数的标量结构体创建一个表。
'AsArray',true
创建一个具有字段 name、billing 和 test 的标量结构体 S。
name
billing
test
S.name = 'John Doe'; S.billing = 127.00; S.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]; S
S = struct with fields: name: 'John Doe' billing: 127 test: [3x3 double]
这些字段具有不同的行数。因此,不能使用 struct2table(S),后者默认情况下使用 'AsArray',false。
struct2table(S)
'AsArray',false
将标量结构体作为数组处理并转换为表。
T = struct2table(S,'AsArray',true)
T=1×3 table name billing test ____________ _______ ____________ {'John Doe'} 127 {3x3 double}
T 包含一行。
结构体数组,指定为一个标量结构体数组。
如果 S 是具有 n 个字段的标量结构体,所有字段都有 m 行,则 T 是 m×n 表。
n
m
如果 S 是非标量 m×1 结构体数组(具有 n 个字段),则 T 是 m×n 表。
1
指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。
Value
Name1,Value1,...,NameN,ValueN
'RowNames',{'row1','row2','row3'}
row1
row2
row3
'RowNames'
{}
T 的行名称,指定为以逗号分隔的对组,其中包含 'RowNames' 和一个由非空的不同元素构成的字符向量元胞数组或字符串数组。
行名称可以包含任何 Unicode® 字符,包括空格和非 ASCII 字符。
如果您指定的行名称包含前导或尾部空白字符,则 struct2table 会将它们从行名称中删除。
struct2table
'AsArray'
false
true
0
如何处理标量结构体的指示符,指定为逗号分隔的对组,包含 'AsArray' 和 false、true、0 或 1。
struct2table 将 S 转换为具有一行和 n 个变量的表。这些变量的大小可以不同。
struct2table 将具有 n 个字段的标量结构体数组转换为 m×n 表。每个字段必须具有 m 行。这是默认行为。
输出表,以表形式返回。该表可以存储元数据,比如说明、变量单位、变量名称和行名称。有关详细信息,请参阅 table 的“属性”部分。
table
用法说明和限制:
在生成的代码中,您在使用此函数时必须指定 'VariableNames' 名称-值对组参数。有关详细信息,请参阅 Code Generation for Tables (MATLAB Coder) 和 Table Limitations for Code Generation (MATLAB Coder)。
'VariableNames'
array2table | cell2table | table | table2struct
array2table
cell2table
table2struct
您的系统上存在此示例的修改版本。是否要打开此版本?
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office