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

    function y= eval_loop(x,PHI,c,N,interact);
%EVAL_LOOP

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



Ns = size(PHI,2);
y= zeros(size(PHI,1),1);
Yj= y;
Yi=y;

i3=1;  % index to coefficients
y(:)=  PHI*c(i3:i3+Ns-1);
i3 = i3 + Ns;
for i=1:N(1)
   if interact>=1
      % Xi * PHI terms
      Yi(:)=  PHI*c(i3:i3+Ns-1);
      i3 = i3 + Ns;
   else
      % X(i+1) * [1 X1 X1^2] Terms
      Yi(:) = c(i3) + x(:,1).*(c(i3+1) + c(i3+2)*x(:,1));
      i3 = i3 + 3;
   end
   for j=i:N(2)
      if interact>=2
         % X(i+1) * X(j+1) * PHI terms
         Yj(:)=  PHI*c(i3:i3+Ns-1);
         i3 = i3 + Ns;
      else
         % X(i+1) * X(j+1) * [1 X1]  Terms
         Yj = c(i3) + x(:,1).*c(i3+1);
         i3 = i3 + 2;
      end
      for k=j:N(3)
         % X(i+1) * X(j+1) * X(k+1) terms
         Yj(:)= Yj + c(i3)*x(:,k+1);
         i3 = i3 + 1;
      end
      Yi(:)= Yi + x(:,j+1).*Yj; 
   end
   y(:) = y + x(:,i+1).*Yi;
end