w12=xlsread('fisher数据样本.xlsx','C2:F16'); %分别选取类1和类2、测试样本的数据
w1=w12(1:5,:); 
w2=w12(6:12,:);
sample=w12(13:15,:); %计算类1和类2的样本数
r1=size(w1,1); 
r2=size(w2,1); 
r3=size(sample,1); %计算类1和类2的均值(矩阵)
m1=mean(w1); 
m2=mean(w2);  %各类类内离散度矩阵(协方差矩阵)
s1=cov(w1)*(r1-1); 
s2=cov(w2)*(r2-1); %总类内离散度矩阵
sw=s1+s2;  %投影向量的计算公式 
w=inv(sw)*(m1-m2)';  %计算投影后的一位空间内,各类的均值 
y1=w'*m1'; 
y2=w'*m2'; %计算阈值 
w0=-1/2*(y1+y2);%和类相同符号被归为同类
for i=1:r3     
    y(i)=sample(i,:)*w+w0;    
if y(i)*(w'*w1(1,:)'+w0)>0      
    y(i)=1;    
else
    y(i)=2;    
end
end

y

样本数据为:

fisher分类matlab代码

结果 :

1 2 2


相关文章: