www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@localmulti/listmodels.m
function [L,OK,ColHead,SumStats]= listmodels(L,Xs,Ys) %LISTMODELS list models for use with Validate_LocalSelect % % [L,OK,ColHead,SumStats]= listmodels(L,Xs,Ys) % Copyright 2006-2015 The MathWorks, Inc. and Ford Global Technologies, Inc. [Xs,Ys]= checkdata(L,Xs,Ys); SelectionIndex= strcmp(StatsList(L.xregmulti),L.Select); if ~any(SelectionIndex) % try and add L.xregmulti= addSummaryStats(L.xregmulti,L.Select); SelectionIndex= strcmp(StatsList(L.xregmulti),L.Select); if ~any(SelectionIndex) % use default of RMSE L.Select = 'RMSE'; end end mlist= get(L.xregmulti,'models'); BestIndex= get(L.xregmulti,'currentindex'); ColHead= StatsList(L); mbest= mlist{BestIndex}; [x,y]= checkdata(mbest,Xs,Ys); sbest= FitSummary(mbest,x,y); if length(mlist)>1 % refit non best models Lr= remove(L,BestIndex); [~,~,mout,OKmulti,SumStats]= gls_fitB(Lr,[],[Xs Ys]); % add back best model mlist= [mout(1:BestIndex-1); {mbest}; mout(BestIndex:end)]; OKmulti = [OKmulti(1:BestIndex-1) true OKmulti(BestIndex:end)]; SumStats= [SumStats(1:BestIndex-1) sbest SumStats(BestIndex:end)]; for i=1:length(SumStats) if OKmulti(i) [OK,loc]=ismember(ColHead,StatsList(mlist{i})); SumStats{i}= SumStats{i}(loc(OK)); % update selection statistic L.SelectionStatistic(i) = SumStats{i}(SelectionIndex); else SumStats{i} = NaN(1,length(ColHead)); L.SelectionStatistic(i) = 0; end end L.xregmulti= set(L.xregmulti,'allmodels',mlist); L.xregmulti= set(L.xregmulti,'currentindex',BestIndex); OK = OKmulti; else SumStats= {sbest}; OK= true; end L = set(L,'allfitted',true);