struct2table
将结构体数组转换为表
说明
示例
使用默认选项将标量结构体转换为表。
创建一个结构体数组 S。
S.Name = ["Chang";"Brown";"Ruiz"]; S.Smoker = ["Y";"N";"Y"]; S.SystolicBP = [124;122;130]; S.DiastolicBP = [93;80;92];
标量结构体 S 具有四个字段,每个字段具有三行。
将结构体数组转换为表。
T = struct2table(S)
T=3×4 table
Name Smoker SystolicBP DiastolicBP
_______ ______ __________ ___________
"Chang" "Y" 124 93
"Brown" "N" 122 80
"Ruiz" "Y" 130 92
S 中的结构体字段名称成为输出表中的变量名称。T 的大小为 3×4。
将变量的 Name 更改为行名称,方法是修改表属性 T.Properties.RowNames,然后删除变量 Name。
T.Properties.RowNames = T.Name; T.Name = []; T
T=3×3 table
Smoker SystolicBP DiastolicBP
______ __________ ___________
Chang "Y" 124 93
Brown "N" 122 80
Ruiz "Y" 130 92
创建一个非标量结构体数组 S。
S(1,1).Name = "Chang"; S(1,1).Smoker = "Y"; S(1,1).SystolicBP = 124; S(1,1).DiastolicBP = 93; S(2,1).Name = "Brown"; S(2,1).Smoker = "N"; S(2,1).SystolicBP = 122; S(2,1).DiastolicBP = 80; S(3,1).Name = "Ruiz"; S(3,1).Smoker = "Y"; S(3,1).SystolicBP = 130; S(3,1).DiastolicBP = 92; S
S=3×1 struct array with fields:
Name
Smoker
SystolicBP
DiastolicBP
S 是具有四个字段的 3×1 结构体数组。
将结构体数组转换为表。
T = struct2table(S)
T=3×4 table
Name Smoker SystolicBP DiastolicBP
_______ ______ __________ ___________
"Chang" "Y" 124 93
"Brown" "N" 122 80
"Ruiz" "Y" 130 92
S 中的结构体字段名称成为输出表中的变量名称。T 的大小为 3×4。
使用 "AsArray",true 基于其字段具有不同行数的标量结构体创建一个表。
创建一个具有字段 name、billing 和 test 的标量结构体 S。
S.name = "John Doe";
S.billing = 127.00;
S.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]S = struct with fields:
name: "John Doe"
billing: 127
test: [3×3 double]
这些字段具有不同的行数。因此,不能使用 struct2table(S),后者默认情况下使用 "AsArray",false。
将标量结构体作为数组处理并转换为表。
T = struct2table(S,"AsArray",true)T=1×3 table
name billing test
__________ _______ ____________
"John Doe" 127 {3×3 double}
T 包含一行。
输入参数
输入数组,指定为结构体。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: "RowNames",["row1","row2","row3"] 将行名称 row1、row2 和 row3 用于表 T。
行名称,指定为字符向量元胞数组或字符串数组,其元素为非空且不同。行名称的数量必须等于输入数组的行数。
行名称可以包含任何 Unicode® 字符,包括空格和非 ASCII 字符,但 ':' 除外。
如果您指定的行名称包含前导或尾随空白字符,则 struct2table 会将它们从行名称中删除。
自 R2021a 起
维度名称,指定为二元素字符向量元胞数组或二元素字符串数组,其元素为非空且不同。
维度名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。但是,维度名称不能与任何表变量名称或保留名称 'Properties'、'RowNames'、'VariableNames' 或 ':' 匹配。
或者,在所有版本中,您可以通过设置表的 DimensionNames 属性来指定维度名称。
将输入视为结构体数组的标志,指定为数值或逻辑值 1 (true) 或 0 (false)。
如果输入是非标量结构体数组,则此值为默认值 | 将结构体数组转换为一个表,每个结构体对应一行,结构体数组的每个字段对应一个变量。这些字段可以有不同大小。 如果字段
|
如果输入是标量结构体,则此值为默认值 | 将具有 示例: S.a = [1;2;3] S.b = [4 5;6 7;8 9] T = struct2table(S) T =
3×2 table
a b
_ ______
1 4 5
2 6 7
3 8 9
|
扩展功能
版本历史记录
在 R2013b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)