view m-toolbox/classes/@stattest/fromStruct.m @ 31:a26669b59d7e
database-connection-manager
Update LTPDAworkbench
author
Daniele Nicolodi <nicolodi@science.unitn.it>
date
Mon, 05 Dec 2011 16:20:06 +0100 (2011-12-05)
parents
f0afece42f48
children
line source
+ − % FROMSTRUCT Construct a ltpda_obj from a struct
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ − %
+ − % FUNCTION: fromStruct
+ − %
+ − % DESCRIPTION: Construct a ltpda_obj from a struct
+ − %
+ − % CALL: obj = fromStruct(obj, struct)
+ − %
+ − % VERSION: $Id: fromStruct.m,v 1.1 2010/12/20 12:50:15 hewitson Exp $
+ − %
+ − %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ −
+ − function objs = fromStruct(objs, obj_struct)
+ −
+ − cn = class(objs);
+ −
+ − % build/update struct
+ − for kk = 1:numel(obj_struct)
+ −
+ − objs(kk) = feval(cn);
+ − %%% Update the structure to the current toolbox version
+ − if isfield(obj_struct, 'tbxver')
+ − fcn_name = ([cn '.update_struct']);
+ − up_struct = feval(fcn_name, obj_struct(kk), obj_struct(kk).tbxver);
+ − else
+ − up_struct = obj_struct(kk);
+ − end
+ −
+ − props = properties(cn);
+ − nprops = numel(props);
+ −
+ − for jj=1:nprops
+ − prop = props{jj};
+ − if isfield(up_struct, prop) && isstruct(up_struct.(prop))
+ − % what class?
+ − if isfield(up_struct.(prop), 'class')
+ − objs(kk).(prop) = utils.helper.struct2obj(up_struct.(prop), up_struct.(prop).class);
+ − else
+ − % can we guess class ?
+ − cln = utils.helper.classFromStruct(up_struct.(prop));
+ − if ~isempty(cln)
+ − objs(kk).(prop) = feval(cln, up_struct.(prop));
+ − else
+ − if isfield(up_struct, prop)
+ − objs(kk).(prop) = up_struct.(prop);
+ − end
+ − end
+ − end
+ − else
+ − if isfield(up_struct, prop)
+ − % ATTENTION: Special case for 'ntaps'
+ − % It is not necessary to set this value because it
+ − % will be computed.
+ − if ~strcmp(prop, 'ntaps')
+ − objs(kk).(prop) = up_struct.(prop);
+ − end
+ − end
+ − end
+ − end
+ −
+ − end
+ −
+ − % Reshape the objects
+ − objs = reshape(objs, size(obj_struct));
+ −
+ − end
+ −