diff m-toolbox/classes/@history/rebuild.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/@history/rebuild.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,61 @@
+% REBUILD rebuilds the orignal object using the history.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DESCRIPTION: REBUILD rebuilds the orignal object using the history.
+%              Necessary for the ltpda_uoh/rebuild method.
+%
+% CALL:        out = rebuild(h)
+%              out = rebuild(h, pl)
+%
+% INPUTS:      h  - array of history objects
+%              pl - configuration PLIST for the history/hist2m method
+%
+% OUTPUTS:     out - array of rebuilt objects.
+%
+% VERSION:     $Id: rebuild.m,v 1.7 2011/11/16 08:25:59 mauro Exp $
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function varargout = rebuild(varargin)
+  
+  import utils.const.*
+  
+  % Get history objects
+  hs = varargin{1};
+  pl = [];
+  
+  % Get configuration PLIST
+  if nargin >= 2
+    pl = varargin{2};
+  end
+  
+  % Go through each input AO
+  bs = [];
+  for jj = 1:numel(hs)
+    
+    % convert to commands
+    if isempty(hs(jj))
+      cmds = {'a_out = [];'};
+    else
+      if isempty(pl)
+        cmds = hist2m(hs(jj));
+      else
+        cmds = hist2m(hs(jj), pl);
+      end
+    end
+    
+    % execute each command
+    for kk = numel(cmds):-1:1
+      utils.helper.msg(msg.PROC4, 'executing command: %s', cmds{kk});
+      eval(cmds{kk});
+    end
+    
+    % add to outputs
+    bs = [bs a_out];
+    
+  end % End object loop
+  
+  % Set output
+  varargout{1} = bs;
+  
+end