⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mds_stress.m

📁 这个为模式识别工具箱
💻 M
字号:
%MDS_STRESS - Sammon stress between dissimilarity matrices%% 	E = MDS_STRESS(q,Ds,D)%% INPUT% 	q					Indicator of the Sammon stress; q = -2,-1,0,1,2% 	Ds				Original distance matrix% 	D 				Approximated distance matrix%% OUTPUT% 	E 				Sammon stress%% DESCRIPTION% Computes the Sammon stress between the original distance matrix Ds% and the approximated distance matrix D, expressed as follows:%% E = 1/(sum_{i<j} Ds_{ij}^(q+2)) sum_{i<j} (Ds_{ij} - D_{ij})^2 * Ds_{ij}^q%%% Copyright: Elzbieta Pekalska, Robert P.W. Duin, ela@ph.tn.tudelft.nl, 2000-2003% Faculty of Applied Sciences, Delft University of Technology%function [e,alpha] = mds_stress (q,Ds,D,isratio)	if nargin < 4		isratio = 0;	end	[m,k]   = size(Ds);	if any(size(D) ~= size(Ds)), 		error ('The sizes of matrices do not match.');	end	mk = m*k;	D  = +D;	Ds = +Ds;	% I is  the index of non-zero (> eps) values to be included 	% for the computation of the stress	I = 1:mk; 	nanindex = find(isnan(Ds(:)) | isnan(D(:)));	if ~isempty(nanindex),		I(nanindex) = [];	end	O = [];	if m == k & (length(intersect(find(D(:) < eps), 1:m+1:(mk))) == m),		O  = 1:m+1:mk;		Ds(O) = 1;     		D (O) = 1;    mm = m - 1;	else		mm = k;	end  if isratio,    II = setdiff(I,O);    alpha = sum((Ds(II).^q).*D(II).^2)/sum((Ds(II).^(q+1)).*D(II));    Ds = alpha*Ds;	else		alpha = 1; 	end		 	c = sum(Ds(I).^(q+2)) - length(O);	if q ~= 0,		e = sum(Ds(I).^q .* ((Ds(I)-D(I)).^2))/c;	else		e = sum(((Ds(I)-D(I)).^2))/c;	endreturn; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -