Mercurial > hg > ltpda
diff m-toolbox/classes/@matrix/fromInput.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children | bc767aaa99a8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@matrix/fromInput.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,69 @@ +% Construct a matrix object from ltpda_uoh objects. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% FUNCTION: fromInput +% +% DESCRIPTION: Construct a matrix object from ltpda_uoh objects. +% +% CALL: matrix = matrix.fromInput(inobjs) +% +% VERSION: $Id: fromInput.m,v 1.9 2011/02/14 13:20:24 ingo Exp $ +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function obj = fromInput(obj, pli, callerIsMethod) + + import utils.const.* + + if callerIsMethod + % do nothing + pl = pli; + else + utils.helper.msg(msg.OPROC1, 'Construct from inputs'); + pl = combine(pli, matrix.getDefaultPlist('From Input')); + end + shape = pl.find('shape'); + objs = pl.find('objs'); + + if iscell(objs) + [inobjs, ao_invars, rest] = utils.helper.collect_objects(objs(:), ''); + if ~isempty(rest) + warning('LTPDA:MATRIX', '### The matrix constructor collects only all %s-objects but there are some %s-objects left.', class(inobjs), class(rest{1})); + end + else + inobjs = objs; + end + + if ~isempty(shape) + obj.objs = reshape(inobjs, shape); + else + obj.objs = inobjs; + end + + + if callerIsMethod + % do less + else + pl.pset('shape', size(obj.objs)); + % Remove the input objects from the plist because we add the histories of + % the input objects to the matrix object. + pl.remove('objs'); + + inhists = []; + if ~isempty(inobjs) + inhists = [inobjs(:).hist]; + end + obj.addHistory(matrix.getInfo('matrix', 'None'), pl, [], inhists); + warning('off', utils.const.warnings.METHOD_NOT_FOUND); + % remove parameters we already used + pl_set = copy(pl,1); + if pl_set.isparam('objs') + pl_set.remove('objs'); + end + if pl_set.isparam('shape') + pl_set.remove('shape'); + end + obj.setProperties(pl_set); + warning('on', utils.const.warnings.METHOD_NOT_FOUND); + end + +end