%% Concatenate Structures
% This example shows how to concatenate structure arrays using the [] operator. To concatenate structures, they must have the same set of fields, but the fields do not need to contain the same sizes or types of data.
%% Create Scalar Structures
% Create scalar (1-by-1) structure arrays struct1 and struct2, each with fields a and b:

struct1.a = 'first';
struct1.b = [1,2,3];
struct2.a = 'second';
struct2.b = rand(5);
struct1,struct2

%
%% Concatenate Scalar Structures
% Just as concatenating two scalar values such as [1,2] creates a 1-by-2 numeric array, concatenating struct1 and struct2 creates a 1-by-2 structure array.

combined = [struct1,struct2]

%
%% Access Field with Index
% When you want to access the contents of a particular field, specify the index of the structure in the array. For example, access field a of the first structure.

combined(1).a

%
%% Concatenate Structure Arrays
% Concatenation also applies to nonscalar structure arrays. For example, create a 2-by-2 structure array named new. Because the 1-by-2 structure combined and the 2-by-2 structure new both have two columns, you can concatenate them vertically with a semicolon separator.

new(1,1).a = 1;
new(1,1).b = 10;
new(1,2).a = 2;
new(1,2).b = 20;
new(2,1).a = 3;
new(2,1).b = 30;
new(2,2).a = 4;
new(2,2).b = 40;

larger = [combined; new]

%
%% Access Field of Structure Array
% Access field a of the structure larger(2,1). It contains the same value as new(1,1).a.

larger(2,1).a

% Copyright 2012 The MathWorks, Inc.