Structure array
A structure array is a data type that groups related data
using data containers called fields. Each field can contain any
type of data. Access data in a field using dot notation of the form
structName.fieldName
.
When you have data to put into a new structure, create the structure using dot notation to name its fields one at a time:
s.a = 1; s.b = {'A','B','C'}
s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
You also can create a structure array using the struct
function,
described below. You can specify many fields simultaneously, or create a nonscalar
structure array.
s = struct
creates a scalar (1-by-1) structure with
no fields.
s = struct(
creates a structure array with the specified field and value. The
field
,value
)value
input argument can be any data type, such as a
numeric, logical, character, or cell array.
If value
is not a cell
array, or if value
is a scalar cell array, then
s
is a scalar structure. For instance,
s = struct('a',[1 2 3])
creates a 1-by-1
structure, where s.a = [1 2 3]
.
If value
is a nonscalar cell array, then
s
is a structure array with the same
dimensions as value
. Each element of
s
contains the corresponding element of
value
. For example, s =
struct('x',{'a','b'})
returns s(1).x =
'a'
and s(2).x = 'b'
.
If value
is an empty cell array
{}
, then s
is an empty
(0-by-0) structure.
s = struct(field1,value1,...,fieldN,valueN)
creates a
structure array with multiple fields.
If none of the value
inputs are cell arrays, or
if all value
inputs that are cell arrays are
scalars, then s
is a scalar structure.
If any of the value
inputs is a nonscalar cell
array, then s
has the same dimensions as that
cell array. Also, if two or more value
inputs are
nonscalar cell arrays, then they all must have the same
dimensions.
For any value
that is a scalar cell array or an
array of any other data type, struct
inserts
the contents of value
in the relevant field for
all elements of s
. For example, s =
struct('x',{'a','b'},'y','c')
returns s(1).x
= 'a'
, s(2).x = 'b'
,
s(1).y = 'c'
, and s(2).y =
'c'
.
If any value
input is an empty cell array,
{}
, then output s
is an
empty (0-by-0) structure. To specify an empty field and keep the
values of the other fields, use []
as a
value
input instead.
s = struct([])
creates an empty (0-by-0) structure
with no fields.
s = struct(
creates a scalar
structure with field names and values that correspond to properties of
obj
)obj
. The struct
function does not
convert obj
, but rather creates s
as a
new structure. This structure does not retain the class information, so
private, protected, and hidden properties become public fields in
s
. The struct
function issues a
warning when you use this syntax.
cell2struct
| fieldnames
| isfield
| isstruct
| orderfields
| rmfield
| struct2cell
| struct2table
| substruct
| table
| table2struct