# struc

Generate model-order combinations for single-output ARX model estimation

## Syntax

`nn = struc(na,nb,nk)nn = struc(na,nb_1,...,nb_nu,nk_1,...,nk_nu)`

## Description

`nn = struc(na,nb,nk)` generates model-order combinations for single-input ARX model estimation. `na` and `nb` are row vectors that specify range of model orders. `nk` is a row vector that specifies range of model delays. `nn` is a matrix that contains all combinations of the orders and delays.

`nn = struc(na,nb_1,...,nb_nu,nk_1,...,nk_nu)` generates model-order combinations for ARX model with `nu` input channels.

## Examples

Generate model-order combinations for single-input ARX model estimation:

```% na and nb vary between 1 and 2, nk varies between 4 and 5. NN = struc(1:2,1:2,4:5); ```

### Generate Model-Order Combinations, and Estimate Multi-Input `ARX` Model

Create estimation and validation data sets.

```load co2data; Ts = 0.5; % Sample time is 0.5 min ze = iddata(Output_exp1,Input_exp1,Ts); zv = iddata(Output_exp2,Input_exp2,Ts); ```

Generate model-order combinations for:

• `na` = 2:4

• `nb` = 2:5 for the first input, and 1 or 4 for the second input,

• `nk` = 1:4 for the first input, and 0 for the second input.

```NN = struc(2:4, 2:5, [1 4], 1:4, 0); ```

Estimate an `ARX` model for each model order.

```V = arxstruc(ze, zv, NN); ```

Select a model order.

```order = selstruc(V,0); ```

Estimate an `ARX` model of selected order.

```M = arx(ze,order); ```

collapse all

### Tips

• Use with `arxstruc` or `ivstruc` to compute loss functions for ARX models, one for each model order combination returned by `struc`.