1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Comma Separated Lists Generated from Cell Arrays (GNU Octave (version 6.2.0))</title>
<meta name="description" content="Comma Separated Lists Generated from Cell Arrays (GNU Octave (version 6.2.0))">
<meta name="keywords" content="Comma Separated Lists Generated from Cell Arrays (GNU Octave (version 6.2.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Comma-Separated-Lists.html" rel="up" title="Comma Separated Lists">
<link href="Comma-Separated-Lists-Generated-from-Structure-Arrays.html" rel="next" title="Comma Separated Lists Generated from Structure Arrays">
<link href="Comma-Separated-Lists.html" rel="prev" title="Comma Separated Lists">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<span id="Comma-Separated-Lists-Generated-from-Cell-Arrays"></span><div class="header">
<p>
Next: <a href="Comma-Separated-Lists-Generated-from-Structure-Arrays.html" accesskey="n" rel="next">Comma Separated Lists Generated from Structure Arrays</a>, Up: <a href="Comma-Separated-Lists.html" accesskey="u" rel="up">Comma Separated Lists</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Comma-Separated-Lists-Generated-from-Cell-Arrays-1"></span><h4 class="subsection">6.4.1 Comma Separated Lists Generated from Cell Arrays</h4>
<p>As has been mentioned above (see <a href="Indexing-Cell-Arrays.html">Indexing Cell Arrays</a>), elements
of a cell array can be extracted into a comma separated list with the
<code>{</code> and <code>}</code> operators. By surrounding this list with
<code>[</code> and <code>]</code>, it can be concatenated into an array. For example:
</p>
<div class="example">
<pre class="example">a = {1, [2, 3], 4, 5, 6};
b = [a{1:4}]
⇒ b =
1 2 3 4 5
</pre></div>
<p>Similarly, it is possible to create a new cell array containing cell
elements selected with <code>{}</code>. By surrounding the list with
‘<samp>{</samp>’ and ‘<samp>}</samp>’ a new cell array will be created, as the
following example illustrates:
</p>
<div class="example">
<pre class="example">a = {1, rand(2, 2), "three"};
b = { a{ [1, 3] } }
⇒ b =
{
[1,1] = 1
[1,2] = three
}
</pre></div>
<p>Furthermore, cell elements (accessed by <code>{}</code>) 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
<code>printf</code> in the following example are identical but the latter is
simpler and can handle cell arrays of an arbitrary size:
</p>
<div class="example">
<pre class="example">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
</pre></div>
<p>If used on the left-hand side of an assignment, a comma separated list
generated with <code>{}</code> can be assigned to. An example is
</p>
<div class="example">
<pre class="example">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
}
</pre></div>
<hr>
<div class="header">
<p>
Next: <a href="Comma-Separated-Lists-Generated-from-Structure-Arrays.html" accesskey="n" rel="next">Comma Separated Lists Generated from Structure Arrays</a>, Up: <a href="Comma-Separated-Lists.html" accesskey="u" rel="up">Comma Separated Lists</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|