cell2table
Convert cell array to table
Description
converts the
contents of an T
= cell2table(C
)m
-by-n
cell array to an
m
-by-n
table. Each column of the input
cell array provides the data contained in a variable of the output table.
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
the cell array.N
creates a table from a cell array with additional options specified by one or more
T
= cell2table(C
,Name,Value
)Name,Value
pair arguments.
For example, you can specify row names or variable names to include in the table.
Examples
Convert Cell Array to Table
Create a cell array that contains strings and numeric data. (Cell arrays of strings are not recommended. But in this case, it is appropriate to include strings in a cell array that contains both strings and numbers. This cell array is not a container for text, but for values that are grouped together though they have different data types.)
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 string arrays.
Convert Column Headings to Variable Names
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 strings to identify column headings. (Cell arrays of strings are not recommended. But in this case, it is appropriate to include strings in a cell array that contains strings, numbers, and logical values. This cell array is not a container for text, but for values that are grouped together though they have different data types.)
Patients = {"LastName" "Age" "Height" "Weight" "Smoker";... "Chang" 38 71 176 true;... "Brown" 43 69 163 false;... "Ruiz" 38 64 131 false;... "Lee" 38 64 131 false;... "Smith" 40 67 133 false;... "Garcia" 49 64 119 false}
Patients=7×5 cell array
{["LastName"]} {["Age"]} {["Height"]} {["Weight"]} {["Smoker"]}
{["Chang" ]} {[ 38]} {[ 71]} {[ 176]} {[ 1]}
{["Brown" ]} {[ 43]} {[ 69]} {[ 163]} {[ 0]}
{["Ruiz" ]} {[ 38]} {[ 64]} {[ 131]} {[ 0]}
{["Lee" ]} {[ 38]} {[ 64]} {[ 131]} {[ 0]}
{["Smith" ]} {[ 40]} {[ 67]} {[ 133]} {[ 0]}
{["Garcia" ]} {[ 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
________ __ __ ___ _____
"Chang" 38 71 176 true
"Brown" 43 69 163 false
"Ruiz" 38 64 131 false
"Lee" 38 64 131 false
"Smith" 40 67 133 false
"Garcia" 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 include the names from the first row of the cell array. To extract the names from the first row, use curly braces. Then concatenate the names into a string array. Assign the string array to T.Properties.VariableNames
.
LastName = [Patients{1,:}]
LastName = 1x5 string
"LastName" "Age" "Height" "Weight" "Smoker"
T.Properties.VariableNames = LastName
T=6×5 table
LastName Age Height Weight Smoker
________ ___ ______ ______ ______
"Chang" 38 71 176 true
"Brown" 43 69 163 false
"Ruiz" 38 64 131 false
"Lee" 38 64 131 false
"Smith" 40 67 133 false
"Garcia" 49 64 119 false
Input Arguments
C
— Input cell array
2-D cell array
Input 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 data types, and each cell has an array with one row, then the corresponding table variable is a homogeneous array.
Example:
C = {[1 2] 3; [4 5] 6} T = cell2table(C)
T = 2×2 table C1 C2 ______ __ 1 2 3 4 5 6
Different sizes, incompatible data types, or any cell has either an object that must be a scalar or an array with more than one row, then the corresponding table variable is a cell array.
(For example, dictionaries and function handles are always scalars. Objects that must be scalars cannot be concatenated into a homogenous array. Therefore,
cell2table
must collect them into a cell array.)Example:
C = {[1 2] 3; 4 5} T = cell2table(C)
T = 2×2 table C1 C2 _______ __ {[1 2]} 3 {[ 4]} 5
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: "RowNames",["row1","row2","row3"]
uses the row names,
row1
, row2
, and row3
for the table, T
.
RowNames
— Row names
{}
(default) | cell array of character vectors | string array
Row names, specified as a cell array of character vectors or string array, whose elements are nonempty and distinct. The number of row names must equal the number of rows of the input array.
Row names can have any Unicode® characters, including spaces and non-ASCII characters, except for ':'
.
If you specify row names that have leading or trailing whitespace characters, then cell2table
removes them from the row names.
VariableNames
— Variable names
cell array of character vectors | string array
Variable names, specified as a cell array of character vectors or a string array, whose elements are nonempty and distinct. The number of variable names must equal the number of columns of the input array.
Variable names can have any Unicode characters, including spaces and non-ASCII characters. However, a variable name cannot match any table dimension name or the reserved names 'Properties'
, 'RowNames'
, 'VariableNames'
, or ':'
.
DimensionNames
— Dimension names
two-element cell array of character vectors | two-element string array
Since R2021a
Dimension names, specified as a two-element cell array of character vectors or two-element string array whose elements are nonempty and distinct.
Dimension names can have any Unicode characters, including spaces and non-ASCII characters. However, a
dimension name cannot match any table variable name or the reserved names
'Properties'
, 'RowNames'
,
'VariableNames'
, or ':'
.
As an alternative, in all releases you can specify dimension names by setting the
DimensionNames
property of the table.
Output Arguments
T
— Output table
table
Output 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
.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
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).
Thread-Based Environment
Run code in the background using MATLAB® backgroundPool
or accelerate code with Parallel Computing Toolbox™ ThreadPool
.
Version History
Introduced in R2013bR2019b: Variable names can contain leading and trailing whitespace characters
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.
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.
Select a Web Site
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
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)