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

    function m= updateallparameters(m,b)
%UPDATEALLPARAMETERS update all parameters for xregrbf
%
% b= [nc; size(widths); lambda; widths(:); centers(:); weights(:); qralg];

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

nf= nfactors(m);
nc= b(1);
nw= b(2:3)';
lambda= b(4);
n= prod(nw)+4;
w= reshape(b(5:n),nw);
c= reshape(b(n+1:n+nc*nf),nc,nf);
n= n+nc*nf;
blin= b(n+1:n+nc);

set(m,'lambda',lambda);
m.width= w;
m.centers= c;
m.xreglinear = updateallparameters(m.xreglinear,blin);
% set qr algorithm up correctly
if all(lambda==0)
   m.xreglinear=set(m.xreglinear,'qr','ols');
elseif n+nc<length(b)
    % qr algorithm stored in allparameters
    qralg = {'ols','ridge','rols','smooth'};
    m.xreglinear=set(m.xreglinear,'qr',qralg{b(end)});
else
    % old models didn't store qr explicitly so we tried to guess
    try
        switch lower(getname(get(m.om,'CenterSelectionAlg')))
            case {'rols','wigglecenters'}
                m.xreglinear=set(m.xreglinear,'qr','rols');
            otherwise
                m.xreglinear=set(m.xreglinear,'qr','ridge');
        end
    catch
        m.xreglinear=set(m.xreglinear,'qr','ridge');
    end
end