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 131
|
<html lang="en">
<head>
<title>Structure Arrays - Untitled</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Untitled">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Data-Structures.html#Data-Structures" title="Data Structures">
<link rel="prev" href="Basic-Usage-and-Examples.html#Basic-Usage-and-Examples" title="Basic Usage and Examples">
<link rel="next" href="Creating-Structures.html#Creating-Structures" title="Creating Structures">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<p>
<a name="Structure-Arrays"></a>
Next: <a rel="next" accesskey="n" href="Creating-Structures.html#Creating-Structures">Creating Structures</a>,
Previous: <a rel="previous" accesskey="p" href="Basic-Usage-and-Examples.html#Basic-Usage-and-Examples">Basic Usage and Examples</a>,
Up: <a rel="up" accesskey="u" href="Data-Structures.html#Data-Structures">Data Structures</a>
<hr>
</div>
<h4 class="subsection">6.1.2 Structure Arrays</h4>
<p>A structure array is a particular instance of a structure, where each of
the fields of the structure is represented by a cell array. Each of
these cell arrays has the same dimensions. Conceptually, a structure
array can also be seen as an array of structures with identical
fields. An example of the creation of a structure array is
<pre class="example"> x(1).a = "string1";
x(2).a = "string2";
x(1).b = 1;
x(2).b = 2;
</pre>
<p class="noindent">which creates a 2-by-1 structure array with two fields. Another way
to create a structure array is with the <code>struct</code> function
(see <a href="Creating-Structures.html#Creating-Structures">Creating Structures</a>). As previously, to print the value of
the structure array, you can type its name:
<pre class="example"> x
x =
{
1x2 struct array containing the fields:
a
b
}
</pre>
<p>Individual elements of the structure array can be returned by indexing
the variable like <var>x</var><code>(1)</code>, which returns a structure with
two fields:
<pre class="example"> x(1)
ans =
{
a = string1
b = 1
}
</pre>
<p>Furthermore, the structure array can return a comma separated list of
field values (see <a href="Comma-Separated-Lists.html#Comma-Separated-Lists">Comma Separated Lists</a>), if indexed by one of its
own field names. For example
<pre class="example"> x.a
ans = string1
ans = string2
</pre>
<p>Here is another example, using this comma separated list on the
left-hand side of an assignment:
<pre class="example"> [x.a] = deal("new string1", "new string2");
x(1).a
ans = new string1
x(2).a
ans = new string2
</pre>
<p>Just as for numerical arrays, it is possible to use vectors as indices (see <a href="Index-Expressions.html#Index-Expressions">Index Expressions</a>):
<pre class="example"> x(3:4) = x(1:2);
[x([1,3]).a] = deal("other string1", "other string2");
x.a
ans = other string1
ans = new string2
ans = other string2
ans = new string2
</pre>
<p>The function <code>size</code> will return the size of the structure. For
the example above
<pre class="example"> size(x)
ans =
1 4
</pre>
<p>Elements can be deleted from a structure array in a similar manner to a
numerical array, by assigning the elements to an empty matrix. For
example
<pre class="example"> in = struct ("call1", {x, Inf, "last"},
"call2", {x, Inf, "first"})
in =
{
1x3 struct array containing the fields:
call1
call2
}
in(1) = [];
in.call1
ans = Inf
ans = last
</pre>
</body></html>
|