gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第13章/grayabsasso.m
function y=grayabsasso(varargin) num=length(varargin); for i=1:num a=find(isnan(varargin{i})); while ~isempty(a) for j=1:length(a) if ~isnan(varargin{i}(a(1)+j)) m=round(mean([a(1)-1 a(1)+j])); varargin{i}(m)=mean([varargin{i}(a(1)-1),varargin{i}(a(1)+j)]); break else continue end end a=find(isnan(varargin{i})); end b=varargin{i}(1); for j=1:length(varargin{i}) varargin{i}(j)=varargin{i}(j)-b; end s(i)=abs(sum(varargin{i}(2:end-1))+0.5*varargin{i}(end)); end for i=2:num si(i)=abs(sum(varargin{i}(2:end-1)-varargin{1}(2:end-1))+0.5*(varargin{i}(end)-varargin{1}(end))); y(i)=(1+s(1)+s(i))/(1+s(1)+s(i)+si(i)); end y(1)=[];