Query Array Size and Characteristics
This example shows how to query the size of model arrays, including the number of inputs and outputs of the models in the array, and the array dimensions. It also shows how to query characteristics of the models in the array, such as stability.
Array Size
Model arrays have two different sets of dimensions, the I/O dimensions and the array dimensions. The I/O dimensions are the numbers of inputs and outputs of the models in the array. (Each model in an array must have the same I/O dimensions.) The array dimensions are the dimensions of the array itself. Load a saved model array and query its dimensions.
load('queryexample.mat','sysarr') size(sysarr)
2x4 array of state-space models. Each model has 3 outputs, 1 inputs, and 3 states.
When you use the size
command on a model array with no output argument, the display shows the two sets of dimensions.
To obtain the array dimensions as a numeric array, use size
with an output argument.
dims = size(sysarr)
dims = 1×4
3 1 2 4
The first two entries in dims
are the I/O dimensions of the models in sysarr
, which each have three outputs and one input. The remaining entries in dims
are the dimensions of the array itself. Thus, sysarr
is a 2-by-4 array of models.
To query the number of dimensions in the array, rather than the values of those dimensions, use ndims
.
dims = ndims(sysarr)
dims = 4
In this case, sysarr
has 4 = 2 + 2 dimensions: The I/O dimensions (outputs and inputs), and the array dimensions. Query the I/O dimensions alone using the iosize
command.
ios = iosize(sysarr)
ios = 1×2
3 1
Query the total number of models in the array.
N = nmodels(sysarr)
N = 8
Because sysarr
is a 2-by-4 array of models, this command returns a value of 2 × 4 = 8.
Characteristics of Models in the Array
Query commands such as isproper
and isstable
work on model arrays. For example, query whether the models in sysarr
are stable.
Bsiso = isstable(sysarr)
Bsiso = logical
1
By default, isstable
returns 1 (true
) if all of the models in the array are stable. The command returns 0 (false
) if one or more of the models is not stable. To perform an element-by-element query of a model array, use the 'elem'
option.
Bsiso = isstable(sysarr,'elem')
Bsiso = 2x4 logical array
1 1 1 1
1 1 1 1
Now isstable
returns an array of Boolean values. The dimensions of this array match the array dimensions of sysarr
. Each entry in the array Bsiso
indicates whether the corresponding model of sysarr
is stable. The 'elem'
option works similarly for many query commands.