Convert cell array to table
converts the
contents of an T
= cell2table(C
)m
-by-n
cell array,
C
, to an m
-by-n
table,
T
. Each column of C
provides the data
contained in a variable of T
.
To create variable names in the output table, cell2table
appends column
numbers to the input array name. If the input array has no name, then
cell2table
creates variable names of the form
'Var1',...,'Var
, where
N
'
is the number of columns in
N
C
.
creates
a table from a cell array, T
= cell2table(C
,Name,Value
)C
, with additional options
specified by one or more Name,Value
pair arguments.
For example, you can specify row names or variable names to include in the table.
Create a cell array containing character vectors and numeric data.
C = {5 'cereal' 110 'C+'; 12 'pizza' 140 'B';... 23 'salmon' 367 'A'; 2 'cookies' 160 'D'}
C=4×4 cell array
{[ 5]} {'cereal' } {[110]} {'C+'}
{[12]} {'pizza' } {[140]} {'B' }
{[23]} {'salmon' } {[367]} {'A' }
{[ 2]} {'cookies'} {[160]} {'D' }
Convert the cell array, C
, to a table and specify variable names.
T = cell2table(C,... 'VariableNames',{'Age' 'FavoriteFood' 'Calories' 'NutritionGrade'})
T=4×4 table
Age FavoriteFood Calories NutritionGrade
___ ____________ ________ ______________
5 {'cereal' } 110 {'C+'}
12 {'pizza' } 140 {'B' }
23 {'salmon' } 367 {'A' }
2 {'cookies'} 160 {'D' }
The variables T.Age
and T.Calories
are numeric while the variables T.FavoriteFood
and T.NutritionGrade
are cell arrays of character vectors.
Convert a cell array to a table, and then include the first row from the cell array as variable names for the table.
Create a cell array where the first row contains character vectors to identify column headings.
Patients = {'Gender' 'Age' 'Height' 'Weight' 'Smoker';... 'M' 38 71 176 true;... 'M' 43 69 163 false;... 'M' 38 64 131 false;... 'F' 38 64 131 false;... 'F' 40 67 133 false;... 'F' 49 64 119 false}
Patients=7×5 cell array
{'Gender'} {'Age'} {'Height'} {'Weight'} {'Smoker'}
{'M' } {[ 38]} {[ 71]} {[ 176]} {[ 1]}
{'M' } {[ 43]} {[ 69]} {[ 163]} {[ 0]}
{'M' } {[ 38]} {[ 64]} {[ 131]} {[ 0]}
{'F' } {[ 38]} {[ 64]} {[ 131]} {[ 0]}
{'F' } {[ 40]} {[ 67]} {[ 133]} {[ 0]}
{'F' } {[ 49]} {[ 64]} {[ 119]} {[ 0]}
Exclude the columns headings and convert the contents of the cell array to a table.
C = Patients(2:end,:); T = cell2table(C)
T=6×5 table
C1 C2 C3 C4 C5
_____ __ __ ___ _____
{'M'} 38 71 176 true
{'M'} 43 69 163 false
{'M'} 38 64 131 false
{'F'} 38 64 131 false
{'F'} 40 67 133 false
{'F'} 49 64 119 false
The table, T
, has variable names C1,...,C5
.
Change the variable names by setting the table property, T.Properties.VariableNames
, to the first row of the cell array.
T.Properties.VariableNames = Patients(1,:)
T=6×5 table
Gender Age Height Weight Smoker
______ ___ ______ ______ ______
{'M'} 38 71 176 true
{'M'} 43 69 163 false
{'M'} 38 64 131 false
{'F'} 38 64 131 false
{'F'} 40 67 133 false
{'F'} 49 64 119 false
C
— Input cell arrayInput cell array, specified as a 2-D cell array. Each column of C
provides
data for a table variable.
If the contents of the cells in a column of C
have compatible sizes and types, then the corresponding table
variable is the vertical concatenation of those contents into an
array.
If the contents of the cells in a column have different sizes and types, then the corresponding table variable is a cell array.
If the contents of the cells in a column are all character vectors, then the corresponding table variable is a cell array of character vectors.
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. The number
of names must equal the number of rows,
size(C,1)
.
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 cell2table
removes them from the
row names.
'VariableNames'
— Variable names for T
Variable names for T
, specified as the comma-separated pair consisting of
'VariableNames'
and a cell array of character
vectors or a string array, whose elements are nonempty and distinct. The
number of names must equal the number of variables,
size(C,2)
.
Variable names can have any Unicode characters, including spaces and non-ASCII characters.
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
.
Behavior changed in R2019b
Table and timetable variable names with leading or trailing whitespace characters are not modified.
In previous releases, leading and trailing whitespace characters were deleted from variable names when you specified them using the 'VariableNames'
name-value pair argument, or assigned them to the VariableNames
property.
To manually remove such characters, first use the strtrim
function on the names,
then assign them as variable names to the table or timetable.
Usage notes and limitations:
In generated code, you must specify the 'VariableNames'
name-value pair argument 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?