This example shows how to read and write data to and from a cell array. To run the code in this example, create a 2-by-3 cell array of text and numeric data:
C = {'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 Indexing with Smooth Parentheses, ()
Cell array indices in smooth parentheses refer to sets of cells. For example, the command
upperLeft = C(1:2,1:2)
creates a 2-by-2 cell array:
upperLeft = 'one' 'two' [ 1] [ 2]
Update sets of cells by replacing them with the same number of cells. For example, the statement
C(1,1:3) = {'first','second','third'}
replaces the cells in the first row of C
with
an equivalent-sized (1-by-3) cell array:
C = '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) numericVector = cell2mat(numericCells)
numericCells
is a 1-by-3 cell array, but numericVector
is
a 1-by-3 array of type double
:
numericCells = [1] [2] [3] numericVector = 1 2 3
Content Indexing with Curly Braces, {}
Access the contents of cells—the numbers, text, or other data within the cells—by indexing with curly braces. For example, the command
last = C{2,3}
creates a numeric variable of type double
,
because the cell contains a double
value:
last = 3
Similarly, this command
C{2,3} = 300
replaces the contents of the last cell of C
with
a new, numeric value:
C = 'first' 'second' 'third' [ 1] [ 2] [ 300]
When you access the contents of multiple cells, such as
C{1:2,1:2}
MATLAB® creates 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. For example,
[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
returns
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. For example,
nums = [C{2,:}]
returns
nums = 1 2 300
For more information, see: