www.gusucode.com > 超全的模式识别matlab源码程序 > code/load_file.m
function [patterns, targets, distribution_parameters] = load_file(filename) %Load a file with either data points and/or distribution parameters patterns = []; targets = []; distribution_parameters = []; if isempty(findstr(filename,'.mat')), filename = [filename '.mat']; end if (~isempty(dir(filename))) load (filename) if (exist('features')) disp('Old data type. Changing the matrix called "features" into a matrix called "patterns". Please save the data once it is transformed'); patterns = features; end if ((isempty(patterns) | isempty(targets))) & isempty(distribution_parameters) & ~exist('m0') error('No patterns, targets, or distribution parameters found in this file') end if (length(unique(targets)) ~= 2) error('The GUI requires two classes of data to operate. Use the text based interface for multiclass or single class data.') end hm = findobj('Tag', 'Messages'); st= ''; if (~isempty(patterns)), st = ['File loaded. Found ' num2str(size(targets,2)) ' data points']; if (size(patterns,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 [patterns, targets] = feval(chosen, patterns, targets, params); close(h) end param = max(max(abs(patterns))); plot_scatter(patterns, targets) axis([-param,param,-param,param]) end if ~isempty(distribution_parameters) % try (distribution_parameters.p0) % %Old format % disp('Old parametric structure found. Transforming into the new format. Please save the data once it is transformed'); % dp(1).mu = distribution_parameters.m0; % dp(2).mu = distribution_parameters.m1; % dp(1).sigma = distribution_parameters.s0; % dp(2).sigma = distribution_parameters.s1; % dp(1).w = distribution_parameters.w0; % dp(2).w = distribution_parameters.w1; % dp(1).p = distribution_parameters.p0; % dp(2).p = 1 - distribution_parameters.p0; % for i = 1:2, % for j = 1:length(dp(i).w) % dp(i).type(j,:) = cellstr('Gaussian'); % end % end % distribution_parameters = dp; % catch % end n0 = size(distribution_parameters(1).sigma,1); n1 = size(distribution_parameters(2).sigma,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), patterns = distribution_parameters; end