www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@localmod/modelproperties.m
function p = modelproperties(L,p,Lreal) %MODELPROPERTIES interface to model properties % % p = modelproperties(m,p); % Copyright 2006-2007 The MathWorks, Inc. if nargin<3 % this is needed as Lreal = L; end p = addprop(p,'Transform',... @iGetTransform,... @iSetTransform,... 'char','',... 'Transform function'); if supportTBS(Lreal) p = addprop(p,'TransformBothSides',... @iGetTBS,... @iSetTBS,... 'boolean',false,... 'Transform both sides'); end if supportCovModel(Lreal) [n,CovNames] = gls_wlist(covmodel(L)); CovNames{1} = 'None'; p = addprop(p,'CovarianceModel',... @iGetCovModel,... @iSetCovModel,... 'enum',CovNames,... 'Covariance Model'); [n,CorrNames] = gls_clist(covmodel(L)); CorrNames{1} = 'None'; p = addprop(p,'CorrelationModel',... @iGetCorrModel,... @iSetCorrModel,... 'enum',CorrNames,... 'Correlation Model'); end if permitsDatum(Lreal) p = addprop(p,'DatumType',... @iGetDatum,... @iSetDatum,... 'enum',{'None','Maximum','Minimum','Linked'},... 'Datum Type'); end %% Transform function ytrans = iGetTransform(L) ytrans = get(L,'ytrans'); function L = iSetTransform(L,ytrans) set(L,'ytrans',ytrans); %% TBS function tbs = iGetTBS(L) tbs = logical(get(L,'tbs')); function L = iSetTBS(L,tbs) if islogical(tbs) && isscalar(tbs) set(L,'tbs',tbs); else error(message('mbc:localmod:InvalidArgument')) end %% Covariance model function c = iGetCovModel(L) [n,Names] = gls_wlist(covmodel(L)); if n==1 c = 'None'; else c = Names{n}; end function L = iSetCovModel(L,c) [n,Names] = gls_wlist(covmodel(L)); Names{1} = 'None'; if ischar(c) && ismember(c,Names) n = find( strcmp(c,Names) ); cmod= gls_wlist(covmodel(L),n); L = covmodel(L,cmod); else list = sprintf('''%s'',',Names{:}); list(end) = '.'; error(message('mbc:localmod:InvalidArgument1', list)) end %% Correlation model function c = iGetCorrModel(L) [n,Names] = gls_clist(covmodel(L)); if n==1 c = 'None'; else c = Names{n}; end function L = iSetCorrModel(L,c) [n,Names] = gls_clist(covmodel(L)); Names{1} = 'None'; if ischar(c) && ismember(c,Names) n = find( strcmp(c,Names) ); cmod= gls_clist(covmodel(L),n); L = covmodel(L,cmod); else list = sprintf('''%s'',',Names{:}); list(end) = '.'; error(message('mbc:localmod:InvalidArgument2', list)) end %% Datum Type function Type = iGetDatum(L) val = get(L,'DatumType')+1; List = {'None','Maximum','Minimum','Linked'}; Type = List{val}; function L = iSetDatum(L,Type) val = find(strcmp(Type,{'None','Maximum','Minimum','Linked'}))-1; set(L,'DatumType',val);