www.gusucode.com > classification_matlab_toolbox分类方法工具箱源码程序 > code/Classification_toolbox/load_file.m
function [features, targets, distribution_parameters] = load_file(filename, region) %Load a file with either data points and/or distribution parameters features = []; targets = []; distribution_parameters = []; N = region(5); if isempty(findstr(filename,'.mat')), filename = [filename '.mat']; end if (~isempty(dir(filename))) load (filename) if ((isempty(features) | isempty(targets))) & isempty(distribution_parameters) & ~exist('m0') error('No features, targets, or distribution parameters found in this file') end hm = findobj('Tag', 'Messages'); st= ''; if (~isempty(features)), st = ['File loaded. Found ' num2str(size(targets,2)) ' data points']; if (size(features,1) > 2), %More than two dimensions in the data h = feature_selection; waitfor(h, 'UserData',1) h1 = findobj(h, 'Tag', 'txtHiddenMethod'); chosen = get(h1, 'String'); h1 = findobj(h, 'Tag', 'txtHiddenParams'); params = get(h1, 'String'); if (~isempty(str2num(params))), params = str2num(params); end [features, targets] = feval(chosen, features, targets, params, []); close(h) end param = max(max(abs(features))); plot_scatter(features, targets) axis([-param,param,-param,param]) end if ~isempty(distribution_parameters) n0 = size(distribution_parameters.s0,1); n1 = size(distribution_parameters.s1,1); if (~isempty(st)), st = [st ', ']; else st = 'Found '; end st = [st num2str(n0) ' Gaussians for class 0 and ' num2str(n1) ' Gaussians for class 1.']; end if exist('m0') warning('Located an old-styled distribution file. Please use the new format!') distribution_parameters.m0 = m0; distribution_parameters.m1 = m1; distribution_parameters.w0 = w0; distribution_parameters.w1 = w1; distribution_parameters.s0 = s0; distribution_parameters.s1 = s1; distribution_parameters.p0 = p0; n0 = size(distribution_parameters.s0,1); n1 = size(distribution_parameters.s1,1); if (~isempty(st)), st = [st ', ']; else st = 'Found '; end st = [st num2str(n0) ' Gaussians for class 0 and ' num2str(n1) ' Gaussians for class 1.']; end set(hm,'String',st) else hm = findobj('Tag', 'Messages'); set(hm,'String','File not found.') end if (nargout == 1), features = distribution_parameters; end