Convert structure array to table
creates
a table from a structure array, T
= struct2table(S
,Name,Value
)S
, with additional
options specified by one or more Name,Value
pair
arguments.
For example, you can specify row names to include in the table.
Convert a scalar structure to a table using the default options.
Create a structure array, 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]
The scalar structure, S
, has four fields, each with three rows.
Convert the structure array to a table.
T = struct2table(S)
T=3×4 table
Name Gender SystolicBP DiastolicBP
__________ ______ __________ ___________
{'CLARK' } {'M'} 124 93
{'BROWN' } {'F'} 122 80
{'MARTIN'} {'M'} 130 92
The structure field names in S
become the variable names in the output table. The size of T
is 3-by-4.
Change Name
from a variable to row names by modifying the table property, T.Properties.RowNames
, and then deleting the variable Name
.
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
Create a nonscalar structure array, 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
is a 3-by-1 structure array with four fields.
Convert the structure array to a table.
T = struct2table(S)
T=3×4 table
Name Gender SystolicBP DiastolicBP
__________ ______ __________ ___________
{'CLARK' } {'M'} 124 93
{'BROWN' } {'F'} 122 80
{'MARTIN'} {'M'} 130 92
The structure field names in S
become the variable names in the output table. The size of T
is 3-by-4.
Use 'AsArray',true
to create a table from a scalar structure whose fields have different numbers of rows.
Create a scalar structure, S
, with fields name
, billing
, and 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]
The fields have different numbers of rows. Therefore, you cannot use struct2table(S)
, which uses 'AsArray',false
by default.
Treat the scalar structure as an array and convert it to a table.
T = struct2table(S,'AsArray',true)
T=1×3 table
name billing test
____________ _______ ____________
{'John Doe'} 127 {3x3 double}
T
contains one row.
S
— Structure arrayStructure array, specified as a scalar structure array.
If S
is a scalar structure with n
fields,
all of which have m
rows, then T
is
an m
-by-n
table.
If S
is a nonscalar m
-by-1
structure
array with n
fields, then T
is
an m
-by-n
table.
Specify optional
comma-separated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
'RowNames',{'row1','row2','row3'}
uses the row names,
row1
, row2
, and row3
for the table, T
.'RowNames'
— Row names for T
{}
(default) | cell array of character vectors | string arrayRow names for T
, specified as the comma-separated pair consisting of
'RowNames'
and a cell array of character vectors
or a string array, whose elements are nonempty and distinct.
Row names can have any Unicode® characters, including spaces and non-ASCII characters.
If you specify row names that have leading or trailing whitespace
characters, then struct2table
removes them from the
row names.
'AsArray'
— Indicator for how to treat scalar structurefalse
(default) | true
| 0
| 1
Indicator for how to treat scalar structure, specified as the
comma-separated pair consisting of 'AsArray'
and
either false
, true
, 0
,
or 1
.
|
|
|
|
T
— Output tableOutput table, returned as a table. The table can store metadata such as descriptions, variable
units, variable names, and row names. For more information, see the Properties section
of table
.
Usage notes and limitations:
For more information, see Code Generation for Tables (MATLAB Coder) and Table Limitations for Code Generation (MATLAB Coder).
You have a modified version of this example. Do you want to open this example with your edits?