read.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:4k
- function varargout = read(t,varargin)
- %READ Read values in WDECTREE object fields.
- % VARARGOUT = READ(T,VARARGIN) is the most general syntax to read
- % one or more property values from the fields of a WDECTREE object.
- %
- % The different ways to call the READ function are:
- % PropValue = READ(T,'PropName') or
- % PropValue = READ(T,'PropName','PropParam')
- % Or any combination of previous syntaxes:
- % [PropValue1,PropValue2, ...] = ...
- % READ(T,'PropName1','PropParam1','PropName2','PropParam2',...)
- % PropParam is optional.
- %
- % The valid choices for PropName are:
- % 'cfs': With PropParam = One terminal node index.
- % cfs = READ(T,'cfs',NODE) is equivalent to
- % cfs = READ(T,'data',NODE) and returns the coefficients
- % of the terminal node NODE.
- %
- % 'wfilters' (see WFILTERS):
- % without PropParam or with PropParam = 'd', 'r', 'l', 'h'.
- %
- % 'data' :
- % without PropParam or
- % with PropParam = One terminal node index or
- % PropParam = Column vector of terminal node indices.
- % In the last case, the PropValue is a cell array.
- % Without PropParam, PropValue contains the coefficients of
- % the tree nodes in ascending node index order.
- %
- % Examples:
- % INTERNAL OPTIONS:
- %------------------
- % 'tnsizes':
- % Without PropParam or with PropParam = Vector of terminal node ranks.
- % The terminal nodes are ordered from left to right.
- % Examples:
- % stnAll = read(t,'tnsizes');
- % stnNod = read(t,'tnsizes',[1,2]);
- % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 13-Mar-2003.
- % Last Revision: 13-Mar-2003.
- % Copyright 1995-2004 The MathWorks, Inc.
- % $Revision: 1.1.6.2 $ $Date: 2004/03/15 22:38:54 $
- nbin = length(varargin);
- k = 1;
- kout = 1;
- while k<=nbin
- argNAME = lower(varargin{k});
- switch argNAME
- case 'cfs'
- if k<nbin
- arg = varargin{k+1}; k = k+1;
- else
- errargt(mfilename,'invalid node index ... ','msg');
- error('*');
- end
- varargout{kout} = read(t,'data',arg);
- kout = kout+1;
- case 'allcfs' , varargout{kout} = read(t,'data'); kout = kout+1;
- case 'wavname' , varargout{kout} = t.wavInfo.wavName; kout = kout+1;
- case 'wfilters'
- if k<nbin, arg = varargin{k+1}; else , arg = 'last'; end
- switch arg
- case 'd'
- varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
- varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
- k = k+1;
- case 'r'
- varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
- varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
- k = k+1;
- case 'l'
- varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
- varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
- k = k+1;
- case 'h'
- varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
- varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
- k = k+1;
- otherwise
- varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
- varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
- varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
- varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
- if isequal(arg,'all') | isequal(arg,'a'), k = k+1; end
- end
- case {'an','sizes','data','tnsizes'}
- field = varargin{k};
- if k<nbin & ...
- (isnumeric(varargin{k+1}) | isequal(varargin{k+1},'all'))
- arg = varargin{k+1}; k = k+1;
- else
- arg = 'all';
- end
- varargout{kout} = read(t.dtree,field,arg); kout = kout+1;
- otherwise
- errargt(mfilename,'switch error ... ','msg');
- error('*');
- end
- k = k+1;
- end