Main Content


Class representing sigmoid network nonlinearity estimator for nonlinear ARX and Hammerstein-Wiener models




sigmoidnet is an object that stores the sigmoid network nonlinear estimator for estimating nonlinear ARX and Hammerstein-Wiener models.

You can use the constructor to create the nonlinearity object, as follows:

s=sigmoidnet('NumberOfUnits',N) creates a sigmoid nonlinearity estimator object with N terms in the sigmoid expansion.

s=sigmoidnet(Property1,Value1,...PropertyN,ValueN) creates a sigmoid nonlinearity estimator object specified by properties in sigmoidnet Properties.

Use evaluate(s,x) to compute the value of the function defined by the sigmoidnet object s at x.

sigmoidnet Properties

You can include property-value pairs in the constructor to specify the object.

After creating the object, you can use get or dot notation to access the object property values. For example:

% List all property values
% Get value of NumberOfUnits property

You can also use the set function to set the value of particular properties. For example:

set(s, 'LinearTerm', 'on')
The first argument to set must be the name of a MATLAB® variable.

Property NameDescription

Integer specifies the number of nonlinearity units in the expansion.

For example:


Can have the following values:

  • 'on'—Estimates the vector L in the expansion.

  • 'off'—Fixes the vector L to zero.

For example:


A structure containing the parameters in the nonlinear expansion, as follows:

  • RegressorMean: 1-by-m vector containing the means of x in estimation data, r.

  • NonLinearSubspace: m-by-q matrix containing Q.

  • LinearSubspace: m-by-p matrix containing P.

  • LinearCoef: p-by-1 vector L.

  • Dilation: q-by-n matrix containing the values bn.

  • Translation: 1-by-n vector containing the values cn.

  • OutputCoef: n-by-1 vector containing the values an.

  • OutputOffset: scalar d.

Typically, the values of this structure are set by estimating a model with a sigmoidnet nonlinearity.


Use sigmoidnet to specify the nonlinear estimator in nonlinear ARX and Hammerstein-Wiener models. For example:



Use sigmoidnet to define a nonlinear function y=F(x), where y is scalar and x is an m-dimensional row vector. The sigmoid network function is based on the following expansion:

F(x)=(xr)PL+a1f((xr)Qb1+c1)+                          +anf((xr)Qbn+cn)+d

where f is the sigmoid function, given by the following equation:


P and Q are m-by-p and m-by-q projection matrices. The projection matrices P and Q are determined by principal component analysis of estimation data. Usually, p=m. If the components of x in the estimation data are linearly dependent, then p<m. The number of columns of Q, q, corresponds to the number of components of x used in the sigmoid function.

When used in a nonlinear ARX model, q is equal to the size of the NonlinearRegressors property of the idnlarx object. When used in a Hammerstein-Wiener model, m=q=1 and Q is a scalar.

r is a 1-by-m vector and represents the mean value of the regressor vector computed from estimation data.

d, a, and c are scalars.

L is a p-by-1 vector.

b are q-by-1 vectors.


sigmoidnet uses an iterative search technique for estimating parameters.

See Also


Introduced in R2007a