Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 3e60ff9d4d6f58c8fbd17208f14089fa > files > 394

octave-doc-3.2.3-3mdv2010.0.i586.rpm

<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.13">
<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">
<a name="Structure-Arrays"></a>
<p>
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
          &rArr; 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)
          &rArr; 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
          &rArr;
             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
          &rArr; ans = new string1
      x(2).a
          &rArr; 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
          &rArr;
             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)
          &rArr; 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"})
          &rArr; in =
             {
               1x3 struct array containing the fields:
     
                 call1
                 call2
             }
     
     in(1) = [];
     in.call1
          &rArr;
            ans = Inf
            ans = last
</pre>
   </body></html>