Mercurial > hg > ltpda
diff m-toolbox/classes/@stattest/stattest.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@stattest/stattest.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,301 @@ +% STATTEST constructor for stattest class. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% DESCRIPTION: STATTEST constructor for stattest class. +% +% CONSTRUCTOR: +% +% st = stattest() - creates an empty stattest object +% st = stattest(ao,ao,...) - creates a stattest with the given data +% st = stattest(ao,ao,..., pl) - creates a stattest with the given data +% +% <a href="matlab:utils.helper.displayMethodInfo('stattest', 'stattest')">Parameters Description</a> +% +% VERSION: $Id: stattest.m,v 1.6 2011/04/08 08:56:38 hewitson Exp $ +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +classdef stattest < ltpda_uoh + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Property definition % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %---------- Public (read/write) Properties ---------- + properties + end + + %---------- Protected read-only Properties ---------- + properties (SetAccess = protected) + data = {}; % The data vector of ltpda user objects + result = false; % Store the result of the last test performed + pvalue = []; + end + + %---------- Private Properties ---------- + properties (GetAccess = protected, SetAccess = protected) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Check property setting % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + %--- expr + function obj = set.data(obj, val) + if isempty(val) + obj.data = {}; + return; + end + if numel(val)==1 && isa(val, 'ltpda_uoh') + obj.data = val; + return; + end + if iscell(val) + % check each element + newdata = []; + for ll=1:numel(val) + if isa(val{ll}, 'ltpda_uoh') + newdata = [newdata val(ll)]; + end + end + obj.data = newdata; + return; + end + error('### The data array should contain only ltpda user objects'); + end + %--- params + function obj = set.result(obj, val) + if ~islogical(val) + error('### The result should be a logical (true/false)'); + end + obj.result = val; + end + %--- values + function obj = set.pvalue(obj, val) + if ~isnumeric(val) + error('### The pvalue must be numeric'); + end + obj.pvalue = val; + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Constructor % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + function obj = stattest(varargin) + + import utils.const.* + utils.helper.msg(msg.OMNAME, 'running %s/%s', mfilename('class'), mfilename); + + % Collect all stattest objects + [sts, invars, rest] = utils.helper.collect_objects(varargin(:), 'stattest'); + + if isempty(rest) && ~isempty(sts) + % Do copy constructor and return + utils.helper.msg(msg.OPROC1, 'copy constructor'); + obj = copy(sts, 1); + for kk=1:numel(obj) + obj(kk).addHistory(smodel.getInfo('stattest', 'None'), [], [], obj(kk).hist); + end + return + end + + switch nargin + case 0 + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%% no input %%%%%%%%%%%%%%%%%%%%%%%%%%%* + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + utils.helper.msg(msg.OPROC1, 'empty constructor'); + obj.addHistory(stattest.getInfo('stattest', 'None'), plist(), [], []); + + case 1 + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%% One input %%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + if ischar(varargin{1}) + %%%%%%%%%% mdl = stattest('foo.mat') %%%%%%%%%% + %%%%%%%%%% mdl = stattest('foo.xml') %%%%%%%%%% + + % Is this a file? + [path, name, ext] = fileparts(varargin{1}); + + if ismember(ext, {'.xml', '.mat', '.txt', '.dat', '.fil'}) + utils.helper.msg(msg.OPROC1, 'constructing from file %s', varargin{1}); + obj = obj.fromFile(varargin{1}); + else + error('Unknown file extension %s', ext); + end + + elseif isa(varargin{1}, 'ltpda_uoh') + %%%%%%%%%% st = stattest(ltpda_objects) %%%%%%%%%% + utils.helper.msg(msg.OPROC1, 'constructing from ltpda objects'); + obj.data = varargin{1}; + + elseif iscell(varargin{1}) + %%%%%%%%%% st = stattest({a,b,c}) %%%%%%%%%% + + pl = plist('data', varargin{1}); + obj = obj.fromData(pl); + + + elseif isa(varargin{1}, 'plist') + %%%%%%%%%% st = stattest(plist-object) %%%%%%%%%% + + pl = varargin{1}; + + if pl.isparam('data') + utils.helper.msg(msg.OPROC1, 'constructing from data'); + obj = obj.fromData(pl); + + else + obj.setProperties(pl); + obj.addHistory(stattest.getInfo('stattest', 'None'), pl, [], []); + end + + else + error('### Unknown single argument constructor.'); + end + case 2 + + if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl') && ... + isa(varargin{2}, 'history') + %%%%%%%%%% obj = ao(DOM node, history-objects) %%%%%%%%%% + obj = fromDom(obj, varargin{1}, varargin{2}); + else + error('### Unknown constructor with two inputs'); + end + otherwise + [objs, invars, rest] = utils.helper.collect_objects(varargin, 'ltpda_uoh'); + [pls, invars, rest] = utils.helper.collect_objects(varargin, 'plist'); + pl = combine(pls, stattest.getDefaultPlist('From Data')); + pl.pset('data', objs); + obj = obj.fromData(pl); + + end + + end % End constructor + + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (protected) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods (Access = protected) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (static) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods (Static) + + function sts = getBuiltInModels(varargin) + sts = ltpda_uo.getBuiltInModels('stattest'); + end + + function out = VEROUT() + out = '$Id: stattest.m,v 1.6 2011/04/08 08:56:38 hewitson Exp $'; + end + + function ii = getInfo(varargin) + ii = utils.helper.generic_getInfo(varargin{:}, 'stattest'); + end + + function out = SETS() + out = [SETS@ltpda_uoh, ... + {'Default'}, ... + {'From Data'}... + ]; + end + + + function plout = getDefaultPlist(set) + persistent pl; + persistent lastset; + if exist('pl', 'var')==0 || isempty(pl) || ~strcmp(lastset, set) + pl = stattest.buildplist(set); + lastset = set; + end + plout = pl; + end + + function out = buildplist(set) + + if ~utils.helper.ismember(lower(stattest.SETS), lower(set)) + error('### Unknown set [%s]', set); + end + + out = plist(); + out = stattest.addGlobalKeys(out); + out = buildplist@ltpda_uoh(out, set); + + switch lower(set) + case 'from data' + + % Expression + p = param({'data','Array of LTPDA user objects to set as the data.'}, paramValue.EMPTY_DOUBLE); + out.append(p); + + end + end % function out = getDefaultPlist(varargin) + + function obj = initObjectWithSize(n,m) + obj = stattest.newarray([n m]); + for ii = 1:numel(obj) + obj(ii).UUID = char(java.util.UUID.randomUUID); + end + end + + end % End static methods + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (static, private) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods (Static, Access=private) + varargout = elementOp(varargin) + end % End static, private methods + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (static, hidden) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods (Static = true, Hidden = true) + varargout = loadobj(varargin) + varargout = update_struct(varargin); + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (public) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods + varargout = char(varargin) + varargout = display(varargin) + varargout = copy(varargin) + + varargout = setData(varargin) + + end + + methods (Hidden = true) + varargout = attachToDom(varargin) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (protected) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods (Access = protected) + varargout = fromStruct(varargin) + varargout = fromDom(varargin) + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % Methods (private) % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + methods (Access = private) + end + +end % End classdef +