% STRUCT2OBJ converts a structure to the wanted object.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DESCRIPTION: STRUCT2OBJ converts a structure to the wanted object.%% CALL: objs = struct2obj(struct, class_name)% objs = struct2obj(struct)%% If the class type is not specified, then the fieldnames of the input% structure are compared to the fieldnames of all LTPDA classes until a% matching class is found.%% INPUTS: struct: Structure which should be converted% class_name: Class name%% OUTPUTS: objs: Vector of the wanted objects.%% VERSION: $Id: struct2obj.m,v 1.4 2008/10/16 15:45:39 ingo Exp $%% HISTORY: 09-05-07 M Hewitson% Creation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function varargout = struct2obj(varargin)if nargin < 1 error('### Unknown number of inputs.%s### Please use: struct2obj(struct, class_name)', char(10))endobj_struct = varargin{1};if nargin >= 2 class_name = varargin{2};else class_name = utils.helper.classFromStruct(obj_struct);endif isempty(class_name) error('### The input structure doesn''t match any LTPDA class.');endobj_vec = [];for jj = 1:numel(obj_struct) if isstruct(obj_struct(jj)) if strcmp(class_name, 'sym') obj = sym(obj_struct(jj).s); else obj = feval(class_name, obj_struct(jj)); end obj_vec = [obj_vec obj]; elseif isa(obj_struct(jj), class_name) obj_vec = [obj_vec obj_struct(jj)]; else error('### Unknown Object (%s) for a %s object.', class(hist_s(jj))); endendobj_vec = reshape(obj_vec, size(obj_struct));varargout{1} = obj_vec;