- publishing free software manuals
 GNU Octave Manual Version 3 by John W. Eaton, David Bateman, Søren HaubergPaperback (6"x9"), 568 pagesISBN 095461206XRRP £24.95 (\$39.95)

### 6.1.1 Structure Arrays

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. An example of the creation of a structure array is

```x(1).a = "string1"
x(2).a = "string2"
x(1).b = 1
x(2).b = 2
```

which creates a 2-by-1 structure array with two fields. As previously, to print the value of the structure array, you can type its name:

```octave:2> x
x =
{
a =

(,
[1] = string1
[2] = string2
,)

b =

(,
[1] =  1
[2] =  2
,)

}
```

Individual elements of the structure array can be returned by indexing the variable like `x (1)`, which returns a structure with the two fields like

```octave:2> x(1)
ans =
{
a = string1
b =  1
}
```

Furthermore, the structure array can return a comma separated list (see section 6.3 Comma Separated Lists), if indexed by one of its own field names. For example

```octave:3> x.a
ans =

(,
[1] = string1
[2] = string2
,)
```

The function `size` with return the size of the structure. For the example above

```octave:4> size(x)
ans =

1   2
```

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

```in = struct ("call1", {x, Inf, "last"},
"call2", {x, Inf, "first"});
in (1, :) = []
=> in =
{
call1 =

(,
[1] = Inf
[2] = last
,)

call2 =

(,
[1] = Inf
[2] = first
,)

}
```
 ISBN 095461206X GNU Octave Manual Version 3 See the print edition