Processing Data in Structures - GNU Octave
Description: GNU Octave

Previous: Manipulating Structures, Up: Structures

#### 6.1.5 Processing Data in Structures

The simplest way to process data in a structure is within a `for` loop (see Looping Over Structure Elements). A similar effect can be achieved with the `structfun` function, where a user defined function is applied to each field of the structure. See doc-structfun.

Alternatively, to process the data in a structure, the structure might be converted to another type of container before being treated.

— Built-in Function: struct2cell (S)

> Create a new cell array from the objects stored in the struct object. If f is the number of fields in the structure, the resulting cell array will have a dimension vector corresponding to `[`F`size(`S`)]`. For example:

>                 s = struct('name', {'Peter', 'Hannah', 'Robert'},
>                            'age', {23, 16, 3});
>                 c = struct2cell(s)
>                    ⇒ c = {1x1x3 Cell Array}
>                 c(1,1,:)(:)
>                    ⇒ ans =
>                       {
>                         [1,1] = Peter
>                         [2,1] = Hannah
>                         [3,1] = Robert
>                       }
>                 c(2,1,:)(:)
>                    ⇒ ans =
>                       {
>                         [1,1] = 23
>                         [2,1] = 16
>                         [3,1] = 3
>                       }

> See also: cell2struct, fieldnames.