As has been mentioned above (see Indexing Cell Arrays), elements
of a cell array can be extracted into a comma-separated list with the
{
and }
operators. By surrounding this list with
[
and ]
, it can be concatenated into an array. For example:
a = {1, [2, 3], 4, 5, 6}; b = [a{1:4}] ⇒ b = 1 2 3 4 5
Similarly, it is possible to create a new cell array containing cell
elements selected with {}
. By surrounding the list with
‘{’ and ‘}’ a new cell array will be created, as the
following example illustrates:
a = {1, rand(2, 2), "three"}; b = { a{ [1, 3] } } ⇒ b = { [1,1] = 1 [1,2] = three }
Furthermore, cell elements (accessed by {}
) can be passed
directly to a function. The list of elements from the cell array will
be passed as an argument list to a given function as if it is called
with the elements as individual arguments. The two calls to
printf
in the following example are identical but the latter is
simpler and can handle cell arrays of an arbitrary size:
c = {"GNU", "Octave", "is", "Free", "Software"}; printf ("%s ", c{1}, c{2}, c{3}, c{4}, c{5}); -| GNU Octave is Free Software printf ("%s ", c{:}); -| GNU Octave is Free Software
If used on the left-hand side of an assignment, a comma-separated list
generated with {}
can be assigned to. An example is
in{1} = [10, 20, 30]; in{2} = inf; in{3} = "last"; in{4} = "first"; out = cell (4, 1); [out{1:3}] = in{1 : 3}; [out{4:6}] = in{[1, 2, 4]}) ⇒ out = { [1,1] = 10 20 30 [2,1] = Inf [3,1] = last [4,1] = 10 20 30 [5,1] = Inf [6,1] = first }