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


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


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.


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);

Related Examples

More About

collapse all


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

Was this topic helpful?