Programming |
Creating Multidimensional Arrays
You can use the same techniques to create multidimensional arrays that you use for two-dimensional matrices. In addition, MATLAB provides a special concatenation function that is useful for building multidimensional arrays.
Generating Arrays Using Indexing
One way to create a multidimensional array is to create a two-dimensional array and extend it. For example, begin with a simple two-dimensional array A
.
A
is a 3-by-3 array, that is, its row dimension is 3 and its column dimension is 3. To add a third dimension to A
,
You can continue to add rows, columns, or pages to the array using similar assignment statements.
Extending Multidimensional Arrays
You can take advantage of the MATLAB scalar expansion capabilities, together with the colon operator, to fill an entire dimension with a single value:
To turn A
into a 3-by-3-by-3-by-2, four-dimensional array, enter
A(:,:,1,2) = [1 2 3; 4 5 6; 7 8 9]; A(:,:,2,2) = [9 8 7; 6 5 4; 3 2 1]; A(:,:,3,2) = [1 0 1; 1 1 0; 0 1 1];
Note that after the first two assignments MATLAB pads A
with zeros, as needed, to maintain the corresponding sizes of dimensions.
Generating Arrays Using MATLAB Functions
You can use MATLAB functions such as
randn
, ones
, and zeros
to generate multidimensional arrays in the same way you use them for two-dimensional arrays. Each argument you supply represents the size of the corresponding dimension in the resulting array. For example, to create a 4-by-3-by-2 array of normally distributed random numbers:
To generate an array filled with a single constant value, use the repmat
function. repmat
replicates an array (in this case, a 1-by-1 array) through a vector of array dimensions.
Note Any dimension of an array can have size zero, making it a form of empty array. For example, 10-by-0-by-20 is a valid size for a multidimensional array. |
Building Multidimensional Arrays with the cat Function
The cat
function is a simple way to build multidimensional arrays; it concatenates a list of arrays along a specified dimension:
where A1
, A2
, and so on are the arrays to concatenate, and dim
is the dimension along which to concatenate the arrays.
For example, to create a new array with cat
:
The cat
function accepts any combination of existing and new data. In addition, you can nest calls to cat
. The lines below, for example, create a four-dimensional array.
A = cat(3, [9 2; 6 5], [7 1; 8 4]) B = cat(3, [3 5; 0 1], [5 6; 2 1]) D = cat(4, A, B, cat(3, [1 2; 3 4], [4 3;2 1]))
cat
automatically adds subscripts of 1 between dimensions, if necessary. For example, to create a 2-by-2-by-1-by-2 array, enter
In the previous case, cat
inserts as many singleton dimensions as needed to create a four-dimensional array whose last dimension is not a singleton dimension. If the dim
argument had been 5
, the previous statement would have produced a 2-by-2-by-1-by-1-by-2 array. This adds additional 1
s to indexing expressions for the array. To access the value 8
in the four-dimensional case, use
Multidimensional Arrays | Accessing Multidimensional Array Properties |
© 1994-2005 The MathWorks, Inc.