Using the C++ Math Library | ![]() ![]() |
Overview
A MATLAB structure is very much like a structure in C; it is a variable that contains other variables. Each of the contained variables is called a field of the structure, and each field has a unique name.
For example, imagine you were building a database of images. You might want to create a structure with three fields: the image data, a description of the image, and the date the image was created. The following MATLAB code creates this structure:
images.image = image1; images.description = 'Trees at Sunset'; images.date.year = 1998; images.date.month = 12; images.date.day = 17;
The structure images
contains three fields: image
, description
and date
. The date
field is itself a structure, and contains three additional fields: year
, month
and day
. Notice that structures can contain different types of data. images contains a matrix (the image), a string (the description), and another structure (the date).
Like standard arrays, structures are inherently array oriented. A single structure is a 1-by-1 structure array, just as the value 5
is a 1-by-1 numeric array. You can build structure arrays with any valid size or shape, including multidimensional structure arrays.
For example, assume you'd like to arrange the images from your database of images in a series of "pages," where each page is three images wide (three columns) and four images tall (four rows). The images might be arranged this way in a photo album or for publication in a journal. The following code demonstrates how you use standard MATLAB indexing to create and access the elements of a 3-by-4-by-n structure array:
images(3,4,2).image = image24; images(3,4,2).description = 'Greater Bird of Paradise'; images(3,4,2).date.year = 1993; images(3,4,2).date.month = 7; images(3,4,2).day = 15;
For simplicity, the examples in the book focus on two-dimensional structure arrays, but they'd work just as well with structure arrays of any dimension.
Tips for Working with Structure Arrays
images.description
, for example, you'd get a 24-by-1 array of strings containing all the image descriptions in the structure array.![]() | Indexing into MATLAB Structure Arrays | Accessing a Field | ![]() |