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

    function m = setstatus(m,i,s)
%SETSTATUS set status of term i to s
%
% m = setstatus(m,i,s)
%  i is index to term (Use ':' to specify all terms)
%  s is a vector of status (1='Always,2='Never',3='Step')

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


m.TermStatus(i)= s;

if ischar(i) && strcmp(i,':')
    % could be using scalar expansion
    i= 1:size(m,1);
    s= m.TermStatus;
end
j = s==1 | s ==2;
if any(j)
    % update termsout if status == 1 or 2
    if numel(i)==numel(s)
        m.TermsOut(i(j))= s(j)==2; 	% a term is out if status ==2
    elseif isscalar(s)
        m.TermsOut(i)= s==2; 	% a term is out if status ==2
    else
        error(message('mbc:xreglinear:InvalidIndex'))
    end
    % make coefficients zero if status == 2
    m.Beta(m.TermStatus==2) = 0;
end