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.