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