www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregnnet/xregnnet.m

    function nn = xregnnet(varargin)
%XREGNNET Neural network object constructor
%
% nn = xregnnet('nfactors',nf);
% nn = xregnnet;

%  Copyright 2000-2014 The MathWorks, Inc. and Ford Global Technologies, Inc.

% check that neural net models are available
persistent gotlicense
if isempty(gotlicense) || ~gotlicense
   % try to get license
   gotlicense=mbcchecklicenses(3);
end

if ~gotlicense
   error(message('mbc:xregnnet:InvalidLicense'));
end

% Object properties
nn.version = 4; 
nn.param = [];
nn.lambda = 0;
if nargin == 1 && isstruct(varargin{1})
    nn = varargin{1};
    m = nn.xregmodel;
    nn = rmfield(nn,'xregmodel');
elseif nargin == 1 && isa(varargin{1},'xregnnet')
    % xregnnet object
    m = varargin{1};
    % update version number
    m.version = nn.version;
    nn = m;
    return
elseif nargin == 1 && isa(varargin{1},'network')
    nn.param = varargin{1};
    m=xregmodel('nfactors',varargin{1}.numInputs);
elseif nargin==2 && ischar(varargin{1})
    % nfactors interface
    switch lower(varargin{1})
        case 'nfactors'
            nf = varargin{2};
            % make new network object
            P = repmat([-1 1],nf,1);
            OtherArgs = {'learngdm','mse',{},{},''};
            nn.param = newff(P,[0 1],[10 5],{'tansig' 'tansig' 'purelin'},'trainbr',OtherArgs{:});
            nn.param=i_setdefaults(nn.param);
            m=xregmodel('nfactors',varargin{2});
        otherwise
            error(message('mbc:xregnnet:InvalidArguments'))
    end
else
    nf = 4;
    P = repmat([-1 1],nf,1);
    % make new network object
    OtherArgs = {'learngdm','mse',{},{},''};
    nn.param = newff(P,[0 1],[10 5],{'tansig' 'tansig' 'purelin'},'trainbr',OtherArgs{:});
    nn.param=i_setdefaults(nn.param);
    m=xregmodel('nfactors',4);
end

nn = class(nn,'xregnnet',m);

function nn=i_setdefaults(nn)
% 

nn= init(nn);

return