📄 distance_o_nor.m
字号:
function distance_o_nor(filename,train_num,chara_num)
Temp_Data=xlsread(filename);
Cork_Data=Temp_Data(:,2:(1+chara_num));
Template=zeros(3,chara_num);
Temp=Cork_Data(1:train_num,:);
Template(1,:)=mean(Temp);
Temp=Cork_Data(51:(train_num+50),:);
Template(2,:)=mean(Temp);
Temp=Cork_Data(101:(train_num+100),:);
Template(3,:)=mean(Temp);
ojl_Num=0;
Sum1=zeros(3,1);
test_num=(150-3*train_num);
for k=1:test_num
if k<=test_num/3
Sample=Cork_Data((train_num+k),:);
for ii=1:3
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I1]=min(Sum1);
if I1==1
ojl_Num=ojl_Num+1;
end
else if k>test_num/3 && k<=test_num*2/3
Sample=Cork_Data((2*train_num+k),:);
for ii=1:3
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I1]=min(Sum1);
if I1==2
ojl_Num=ojl_Num+1;
end
else if k>test_num*2/3
Sample=Cork_Data((3*train_num+k),:);
for ii=1:3
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I1]=min(Sum1);
if I1==3
ojl_Num=ojl_Num+1;
end
end
end
end
end
disp('欧几里德识别率是:');
ojl_Num/test_num
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -