gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第2章/ifclassify.m

    function y=ifclassify(varargin)
r=length(varargin);
num=nchoosek(1:r,2); 
for i=1:size(num,1)
  y(i)=myff(varargin{num(i,1)},varargin{num(i,2)});  
end

function y1=myff(class1,class2)
r1=size(class1,1);r2=size(class2,1);
x=[class1 ones(r1,1);-1*class2 -1*ones(r2,1)];
x1=inv(x'*x)*x';
b=ones(r1+r2,1);
flag=1;c=0;
while flag
    f1=0;f=0;
    w=x1*b;
    e=x*w-b;
    c=c+1;
    for i=1:r1+r2
        if e(i)>=0&&~(any(isnan(e(i))))
            f=1;
        end
    end
    if f
        for i=1:r1+r2
            if abs(e(i))>1e-10
                f1=1;
            end
        end
        if f1
            b=b+(e+abs(e));
        else
            y1=1;
            flag=0;
        end
     else
            y1=0;
            flag=0;
     end
     if c>1000
        flag=0;
     end
 end