www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@mdev_local/mledata.m

    function [Xg,Yrf,Sigma]= mledata(mdev,ModelNo,PredMode);
% MDEV_LOCAL/MLEDATA get data for MLE
%
% [TS,Xg,Yrf,Sigma]= mledata(mdev,ModelNo);

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



if ModelNo>0
   % selected model
   selrf= mdev.ResponseFeatures(ModelNo,:);
   TS= mdev.TwoStage{ModelNo};
else
   % use MLE model
   selrf= mdev.ResponseFeatures(1,:);
   TS= mdev.MLE.Model;
end


% local regresion covariance information
%  Ci in D&G , Sigmai in Mark C notation
Sigma= mdev.MLE.Sigma(selrf,selrf,:);
sse=  mdev.MLE.SSE;
df= mdev.MLE.df;
DFT= sum(df(mdev.FitOK));
if DFT
   s2= sum(sse(mdev.FitOK))/DFT;
else
   s2= 0;
end
% use real covariance rather than inv(X'*X)
Sigma= s2*Sigma;

L= model(mdev);

selrf= selrf + RFstart(L); % add datum node if necessary
% get response feature data 
Yrf= children(mdev,'getdata','Y',0);
rfout= children(mdev,'rfoutliers');
for i=1:length(Yrf)
   Yrf{i}= double(Yrf{i});
   Yrf{i}(rfout{i})= NaN;
end
Yrf= [Yrf{:}];

Yrf= Yrf(:,selrf);
if ~isfield(mdev.MLE,'Outliers');
   % set up MLE Outliers 
   mdev.MLE.Outliers= false(size(Yrf));
   pointer(mdev);
end

% assign any outliers to NaN (cleaned by TWOSTAGE/CHECKDATA)
Yrf( mdev.MLE.Outliers~=0 )= NaN;
if nargin>2 & ~PredMode
   % PREDMODE will replace NaN's with predicted value as long as 
   % there are some finite Yrf for the sweep
   bd= any(~isfinite(Yrf),2);
   Yrf(bd,:)= NaN;
end


% global variables
X= getdata(mdev,'FIT');
Xg= double(X{end});