Convert table to structure array
S = table2struct( converts
the table, T)T, to a structure array, S.
Each variable of T becomes a field in S.
If T is an m-by-n table,
then S is a m-by-1 structure
array with n fields.
Create a table, T, with five rows and three variables.
T = table(categorical({'M';'M';'F';'F';'F'}),[38;43;38;40;49],...
[124 93;109 77; 125 83; 117 75; 122 80],...
'VariableNames',{'Gender' 'Age' 'BloodPressure'})T=5×3 table
Gender Age BloodPressure
______ ___ _____________
M 38 124 93
M 43 109 77
F 38 125 83
F 40 117 75
F 49 122 80
Convert T to a structure array.
S = table2struct(T)
S=5×1 struct array with fields:
Gender
Age
BloodPressure
The structure is 5-by-1, corresponding to the five rows of the table, T. The three fields of S correspond to the three variables from T.
Display the field data for the first element of S.
S(1)
ans = struct with fields:
Gender: M
Age: 38
BloodPressure: [124 93]
The information corresponds to the first row of the table.
Create a table, T, with five rows and three variables.
T = table(categorical({'M';'M';'F';'F';'F'}),[38;43;38;40;49],...
[124 93;109 77; 125 83; 117 75; 122 80],...
'VariableNames',{'Gender' 'Age' 'BloodPressure'})T=5×3 table
Gender Age BloodPressure
______ ___ _____________
M 38 124 93
M 43 109 77
F 38 125 83
F 40 117 75
F 49 122 80
Convert T to a scalar structure.
S = table2struct(T,'ToScalar',true)S = struct with fields:
Gender: [5x1 categorical]
Age: [5x1 double]
BloodPressure: [5x2 double]
The data in the fields of the scalar structure are 5-by-1, corresponding to the five rows in the table T.
Display the data for the field BloodPressure.
S.BloodPressure
ans = 5×2
124 93
109 77
125 83
117 75
122 80
The structure field BloodPressure contains all of the data that was in the variable of the same name from table T.
Create a table, T, that includes row names.
T = table(categorical({'M';'M';'F';'F';'F'}),[38;43;38;40;49],...
[124 93;109 77; 125 83; 117 75; 122 80],...
'VariableNames',{'Gender' 'Age' 'BloodPressure'},...
'RowNames',{'Smith' 'Johnson' 'Williams' 'Jones' 'Brown'})T=5×3 table
Gender Age BloodPressure
______ ___ _____________
Smith M 38 124 93
Johnson M 43 109 77
Williams F 38 125 83
Jones F 40 117 75
Brown F 49 122 80
Convert T to a scalar structure.
S = table2struct(T,'ToScalar',true)S = struct with fields:
Gender: [5x1 categorical]
Age: [5x1 double]
BloodPressure: [5x2 double]
Add a field for the row names from the table.
S.RowNames = T.Properties.RowNames
S = struct with fields:
Gender: [5x1 categorical]
Age: [5x1 double]
BloodPressure: [5x2 double]
RowNames: {5x1 cell}
If S is a nonscalar structure, use [S.RowNames] = T.Properties.RowNames{:} to include a field with the row names from the table.
T — Input tableInput table, specified as a table.
If T has variables whose names are not valid
MATLAB® identifiers, then table2struct modifies
them to create valid field names, primarily by removing spaces and replacing
non-ASCII characters with underscores.
Usage notes and limitations:
In generated code, the input table must be constant when using this function. 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?