Main Content


Regressor expressions and numerical values in nonlinear ARX model


Rs = getreg(model)
Rm = getreg(model,data)
Rm = getreg(model,data,init)
Rm = getreg(___,'Type',regressorType)


Rs = getreg(model) returns expressions for computing regressors in the nonlinear ARX model. model is an idnlarx object. A typical use of the regression matrices built by getreg is to generate input data when you want to evaluate the output of a mapping function such as wavenet using evaluate. For example, the following pair of commands evaluates the output of a mapping function model.

Regressor_Value = getreg(model,data,'z')
y = evaluate(model.OutputFcn,RegressorValue)
These commands are equivalent to the command:
y = predict(model,data,1,predictOptions('InitialCondition','z'))

Rm = getreg(model,data) returns regressor values as a timetable for the specified input/output data set data.

Rm = getreg(model,data,init) uses the initial conditions that are specified in init. The first N rows of each regressor matrix depend on the initial states init, where N is the maximum delay in the regressors (see getDelayInfo).

Rm = getreg(___,'Type',regressorType) returns the names of the regressors of the specified regressorType. For example, use the command Rm = getreg(model,'Type','input') to return the names of only the input regressors.

Input Arguments


iddata object containing measured data or numeric matrix that contains the values of the output and input variables in the order [model.OutputName model.InputName].


Initial conditions of your data:

  • 'z' (default) specifies zero initial state.

  • NaN denotes unknown initial conditions.

  • Real column vector containing the initial state values. For more information on initial states, see Definition of idnlarx States in idnlarx. For multiple-experiment data, this is a matrix where each column specifies the initial state of the model corresponding to that experiment.

  • iddata object containing input and output samples at time instants before to the first sample in data. When the iddata object contains more samples than the maximum delay in the model, only the most recent samples are used. The number of samples required is equal to max(getDelayInfo(model)).


iddata object representing nonlinear ARX model.


Type of regressor to return, specified as one of the following:

  • 'all' (default) — All regressors

  • 'input' — Only input regressors

  • 'output' — Only output regressors

  • 'standard' — Only linear and polynomial regressors

  • 'custom' — Only custom regressors

Output Arguments


timetable of regressor values for all or a specified subset of regressors. Each column in Rm contains as many rows as there are data samples. For a model with nr regressors, Rm contains one column for each regressor. When data contains multiple experiments, Rm is a cell array where each element corresponds to a timetable of regressor values for an experiment.


Regressor expressions represented as a cell array of character vectors. For example, the expression 'u1(t-2)' computes the regressor by delaying the input signal u1 by two time samples. Similarly, the expression 'y2(t-1)' computes the regressor by delaying the output signal y2 by one time sample.

The order of regressors in Rs corresponds to regressor indices in the idnlarx object property model.RegressorUsage.


collapse all

Load sample data u and y.

  load twotankdata;
  Ts = 0.2;

Sample time is 0.2 sec.

Create data object and use first 1000 samples for estimation.

  z = iddata(y,u,Ts);
  ze = z(1:1000);

Estimate nonlinear ARX model.

  model = nlarx(ze,[3 2 1]);

Get regressor expressions.

  Rs = getreg(model);

Get regressor values.

  Rm = getreg(model,ze);

Evaluate model output for one-step-prediction.

  Y = evaluate(model.OutputFcn,Rm.Variables);

The previous result is equivalent to.

  Y_p = predict(model,ze,1,'z');
  Y = Y_p.OutputData;

Compatibility Considerations

expand all

Behavior changed in R2021a

Introduced in R2007a