File: Structure-Arrays.html

package info (click to toggle)
octave3.2 3.2.4-8
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 62,936 kB
  • ctags: 37,353
  • sloc: cpp: 219,497; fortran: 116,336; ansic: 10,264; sh: 5,508; makefile: 4,245; lex: 3,573; yacc: 3,062; objc: 2,042; lisp: 1,692; awk: 860; perl: 844
file content (131 lines) | stat: -rw-r--r-- 4,698 bytes parent folder | download
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:&nbsp;<a rel="next" accesskey="n" href="Creating-Structures.html#Creating-Structures">Creating Structures</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Basic-Usage-and-Examples.html#Basic-Usage-and-Examples">Basic Usage and Examples</a>,
Up:&nbsp;<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>