gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第2章/analogical.m
function y=analogical(varargin) r=length(varargin)-2; test=varargin{end-1}; r1=size(test,1); type=varargin{end}; switch type case 'dis' for i=1:r1 for j=1:r d(i,j)=min(pattern_dis(test(i,:),varargin{j},'euclidean')); end [a,y]=min(d,[],2); end case 'pca' for i=1:r1 for j=1:r [x1,x2]=mypcacov(varargin{j},test); d(i,j)=min(pattern_dis(x2(i,:),x1,'euclidean')); end [a,y]=min(d,[],2); end case'cen' for i=1:r1 for j=1:r r2=size(varargin{j},1); if r2>1 x=mean(varargin{j}); else x=varargin{j}; end d(i,j)=min(pattern_dis(test(i,:),x,'euclidean')); end [a,y]=min(d,[],2); end case'mah' for i=1:r1 for j=1:r r2=size(varargin{j},1); if r2>1 x=mean(varargin{j}); else x=varargin{j}; end d(i,j)=min(pattern_dis(test(i,:),x,'euclidean')); end [a,y]=min(d,[],2); end case'cos' for i=1:r1 for j=1:r d(i,j)=max(pattern_dis(test(i,:),varargin{j},'cosine')); end [a,y]=min(d,[],2); end case'ham' for i=1:r1 for j=1:r d(i,j)=min(pattern_dis(test(i,:),varargin{j},'hamming')); end [a,y]=min(d,[],2); end end y=y';