Main Content

Select Models from Array

This example shows how to select individual models or sets of models from a model array using array indexing.

  1. Load the transfer function array m2d into the MATLAB® workspace.

    load LTIexamples m2d
    
  2. (Optional) Plot the step response of m2d.

    step(m2d)

    The step response shows that m2d contains six one-input, two-output models. The step command plots all of the models in an array on a single plot.

  3. (Optional) Examine the dimensions of m2d.

    arraydim = size(m2d)
    

    This command produces the result:

    arraydim =
    
         2     1     2     3
    • The first entries of arraydim, 2 and 1, show that m2d is an array of two-output, one-input transfer functions.

    • The remaining entries in arraydim give the array dimensions of m2d, 2-by-3.

    In general, the dimensions of a model array are [Ny,Nu,S1,...,Sk]. Ny and Nu are the numbers of outputs and inputs of each model in the array. S1,...,Sk are the array dimensions. Thus, Si is the number of models along the ith array dimension.

  4. Select the transfer function in the second row, first column of m2d.

    To do so, use MATLAB array indexing.

    sys = m2d(:,:,2,1)

    Tip

    You can also access models using single index referencing of the array dimensions. For example,

    sys = m2d(:,:,4)
    selects the same model as m2d(:,:,2,1).

  5. Select the array of subsystems from the first input to the first output of each model in m2d.

    m11 = m2d(1,1,:,:)
  6. (Optional) Plot the step response of m11.

    step(m11)

    The step response shows that m11 is an array of six single-input, single-output (SISO) models.

    Note

    For frequency response data (FRD) models, the array indices can be followed by the keyword 'frequency' and some expression selecting a subset of the frequency points, as in:

    sys(outputs,inputs,n1,...,nk,'frequency',SelectedFreqs)
    

Related Topics