6.4.1 Comma Separated Lists Generated from Cell Arrays
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 }
© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/Comma-Separated-Lists-Generated-from-Cell-Arrays.html