Mercurial > hg > ltpda
view m-toolbox/classes/+utils/@helper/classFromStruct.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 source
% CLASSFROMSTRUCT returns a class name that matches the structure. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: CLASSFROMSTRUCT returns a class name that matches the % structure. % % CALL: class_name = classFromStruct(struct) % % If structure does not match any of the LTPDA classes, then 'class_name' % will be empty. % % INPUTS: struct: Structure which should be checked % % OUTPUTS: class_name: Class name. % % VERSION: $Id: classFromStruct.m,v 1.2 2009/07/22 14:45:17 ingo Exp $ % % HISTORY: 08-09-08 M Hewitson % Creation % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function varargout = classFromStruct(varargin) if nargin < 1 error('### Unknown number of inputs.%s### Please use: classFromStruct(struct)', char(10)) end obj_struct = varargin{1}; class_name = ''; % we must determine the class from the fieldnames cls = utils.helper.ltpda_non_abstract_classes; snames = fieldnames(obj_struct); for jj=1:numel(cls) cl = cls{jj}; cnames = properties(cl); if numel(cnames) == numel(snames)&& all(strcmp(snames, cnames)) class_name = cl; break; end end % Set output varargout{1} = class_name; end