Arrays in tabular form whose named columns can have different types
table
is a data type suitable for column-oriented or tabular data that is often stored as columns in a text file or in a spreadsheet. Tables consist of rows and column-oriented variables. Each variable in a table can have a different data type and a different size with the one restriction that each variable must have the same number of rows. For more information, see Create Tables and Assign Data to Them or watch Tables and Categorical Arrays.
Functions
expand all
Create Tables and Convert Type
table | Table array with named variables that can contain different types |
array2table | Convert hom*ogeneous array to table |
cell2table | Convert cell array to table |
struct2table | Convert structure array to table |
table2array | Convert table to hom*ogeneous array |
table2cell | Convert table to cell array |
table2struct | Convert table to structure array |
table2timetable | Convert table to timetable |
timetable2table | Convert timetable to table |
vartype | Subscript into table or timetable by variable type |
convertvars | Convert table or timetable variables to specified data type |
Read and Write Files
Basic Import and Export
readtable | Create table from file |
writetable | Write table to file |
Define Import Rules
detectImportOptions | Create import options based on file content |
spreadsheetImportOptions | Import options object for Spreadsheets |
getvaropts | Get variable import options |
setvaropts | Set variable import options |
setvartype | Set variable data types |
preview | Preview eight rows from file using import options |
Parquet Files
parquetread | Read columnar data from a Parquet file |
parquetwrite | Write columnar data to Parquet file |
parquetinfo | Get information about Parquet file |
Summary Information and Stacked Plot
summary | Print summary of table, timetable, or categorical array |
height | Number of table rows |
width | Number of table variables |
istable | Determine if input is table |
istabular | Determine if input is table or timetable (Since R2021b) |
head | Get top rows of array or table |
tail | Get bottom rows of array or table |
stackedplot | Stacked plot of several variables with common x-axis |
Sort, Filter, and Rearrange
Sort
sortrows | Sort rows of matrix or table |
unique | Unique values in array |
issortedrows | Determine if matrix or table rows are sorted |
topkrows | Top rows in sorted order |
Filter Rows and Variables
rowfilter | Selectively import rows of interest (Since R2022a) |
vartype | Subscript into table or timetable by variable type |
Rearrange Variables
addvars | Add variables to table or timetable |
renamevars | Rename variables in table or timetable (Since R2020a) |
movevars | Move variables in table or timetable |
removevars | Delete variables from table or timetable |
splitvars | Split multicolumn variables in table or timetable |
mergevars | Combine table or timetable variables into multicolumn variable |
convertvars | Convert table or timetable variables to specified data type |
Reshape
rows2vars | Reorient table or timetable so that rows become variables |
stack | Stack data from input table or timetable into one variable in output table or timetable |
unstack | Unstack data from one variable into multiple variables |
inner2outer | Invert nested table-in-table hierarchy in tables or timetables |
Customize Properties
addprop | Add custom properties to table or timetable |
rmprop | Remove custom properties from table or timetable |
Join and Set Operations
Join Using Key Variables
join | Combine two tables or timetables by rows using key variables |
innerjoin | Inner join between two tables or timetables |
outerjoin | Outer join between two tables or timetables |
Set Operations
union | Set union of two arrays |
intersect | Set intersection of two arrays |
ismember | Array elements that are members of set array |
setdiff | Set difference of two arrays |
setxor | Set exclusive OR of two arrays |
Missing Values
anymissing | Determine if any array element is missing (Since R2022a) |
ismissing | Find missing values |
standardizeMissing | Insert standard missing values |
rmmissing | Remove missing entries |
fillmissing | Fill missing entries |
Apply Functions to Table Contents
pivot | Summarize tabular data in pivoted table (Since R2023a) |
groupcounts | Number of group elements |
groupfilter | Filter by group (Since R2019b) |
groupsummary | Group summary computations |
grouptransform | Transform by group |
findgroups | Find groups and return group numbers |
splitapply | Split data into groups and apply function |
rowfun | Apply function to table or timetable rows |
varfun | Apply function to table or timetable variables |
vartype | Subscript into table or timetable by variable type |
convertvars | Convert table or timetable variables to specified data type |
Apps
Data Cleaner | Preprocess and organize column-oriented data (Since R2022a) |
Live Editor Tasks
Compute by Group | Summarize, transform, or filter by group in the Live Editor (Since R2021b) |
Pivot Table | Summarize tabular data in pivoted table in the Live Editor (Since R2023b) |
Join Tables | Combine two tables using key variables in the Live Editor (Since R2019b) |
Stack Table Variables | Combine values from multiple table variables into one table variable in the Live Editor (Since R2020a) |
Unstack Table Variables | Distribute values from one table variable to multiple table variables in the Live Editor (Since R2020a) |
Topics
- Create Tables and Assign Data to Them
There are several ways to create tables and assign data to them. You can create tables from input arrays, preallocate tables and fill them in later, or import tables from text files or spreadsheets.
- Control How MATLAB Imports Your Data
If you want to control the import process beyond the options provided by the
readtable
function, such as defining how to handle missing data or errors, then create an import options object before importing the data. - Access Data in Tables
Indexing into tables with parentheses, dot notation, and curly braces accesses table data in different ways. You can use indexing to create a table that is a subset of a larger table or to create an array from data in a table.
- Rename and Describe Table Variables
- Add, Delete, and Rearrange Table Variables
- Add and Delete Table Rows
- Clean Messy and Missing Data in Tables
- Using Row Labels in Table and Timetable Operations
- Convert Text in Table Variables to Categorical
- Add Custom Properties to Tables and Timetables
- Direct Calculations on Tables and Timetables
You can perform calculations directly on tables and timetables without indexing to extract their data. All the variables in your tables and timetables must have data types that support calculations.
- Calculations When Tables Have Both Numeric and Nonnumeric Data
- Summarize or Pivot Data in Tables Using Groups
- Perform Calculations by Group in Table
- Rules for Table and Timetable Mathematics
- Plots That Support Tables
Create plots by passing tables directly to plotting functions.
- Tables of Mixed Data
Use tables to store mixed-type data conveniently, access data with numeric or named indexing, and to store metadata.
- Changes to DimensionNames Property in R2016b
Tables can raise compatibility warnings, and changedimension names, when you modify the DimensionNames property.
Featured Examples
Open Live Script
Open Live Script
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:
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
- Deutsch
- English
- Français
- United Kingdom (English)
Contact your local office