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

    function [X,Y]= getLocalValidationData(mdev,Tests)
%GETLOCALVALIDATIONDATA 

%  [Xdata,Ydata]= getLocalValidationData(mdev,TestNo)

%  Copyright 2006-2007 The MathWorks, Inc. 

% get validation data
[Xdata,Ydata]= getValidationData(mdev);

N= length(Tests);
X= cell(1,N);
Y= X;
if ~isempty(Xdata)
    Xfit= getdata(mdev,'FIT');
    L= model(mdev);
    nl= nfactors(L);
    XGlobal= mean(Xdata(:,nl+1:end));
    for i=1:length(Tests)
        TestNo= Tests(i);

        Ntests= size(Xdata,3);
        % find matching test
        xg= Xfit{2}{TestNo};
        % avoid divide by zero
        xg(xg==0)= 1;

        if size(xg,1)==1;
            % validation data doesn't work for time-varying problems
            
            % normalised error
            rx=  XGlobal./repmat( xg , Ntests,1) - 1;
            valtests= sum(rx.^2,2)<1e-4;
            if any(valtests)
                % all data with global variables with tolerance
                X{i}= Xdata(:,1:nl,valtests);
                Y{i}= Ydata(:,:,valtests);
            end
        end
    end
end