Previous: Manipulating Structures, Up: Structures   [Contents][Index]


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.