This example shows how to read and write data to and from a cell array.
Create a 2-by-3 cell array of text and numeric data.
C = {'one', 'two', 'three'; 1, 2, 3}
C=2×3 cell array
{'one'} {'two'} {'three'}
{[ 1]} {[ 2]} {[ 3]}
There are two ways to refer to the elements of a cell array. Enclose indices in smooth parentheses, ()
, to refer to sets of cells--for example, to define a subset of the array. Enclose indices in curly braces, {}
, to refer to the text, numbers, or other data within individual cells.
Cell array indices in smooth parentheses refer to sets of cells. For example, to create a 2-by-2 cell array that is a subset of C
, use smooth parentheses.
upperLeft = C(1:2,1:2)
upperLeft=2×2 cell array
{'one'} {'two'}
{[ 1]} {[ 2]}
Update sets of cells by replacing them with the same number of cells. For example, replace cells in the first row of C
with an equivalent-sized (1-by-3) cell array.
C(1,1:3) = {'first','second','third'}
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 3]}
If cells in your array contain numeric data, you can convert the cells to a numeric array using the cell2mat
function.
numericCells = C(2,1:3)
numericCells=1×3 cell array
{[1]} {[2]} {[3]}
numericVector = cell2mat(numericCells)
numericVector = 1×3
1 2 3
numericCells
is a 1-by-3 cell array, but numericVector
is a 1-by-3 array of type double
.
Access the contents of cells--the numbers, text, or other data within the cells--by indexing with curly braces. For example, to access the contents of the last cell of C
, use curly braces.
last = C{2,3}
last = 3
last
is a numeric variable of type double
, because the cell contains a double
value.
Similarly, you can index with curly braces to replace the contents of a cell.
C{2,3} = 300
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 300]}
You can access the contents of multiple cells by indexing with curly braces. MATLAB® returns the contents of the cells as a comma-separated list. Because each cell can contain a different type of data, you cannot assign this list to a single variable. However, you can assign the list to the same number of variables as cells. MATLAB® assigns to the variables in column order.
Assign contents of four cells of C
to four variables.
[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 'first'
r2c1 = 1
r1c2 = 'second'
r2c2 = 2
If each cell contains the same type of data, you can create a single variable by applying the array concatenation operator, []
, to the comma-separated list.
Concatenate the contents of the second row into a numeric array.
nums = [C{2,:}]
nums = 1×3
1 2 300