?? mat_sb.m
字號:
clear all;
clc;
filename=input('請輸入識別數據文件名:','s');
train_num=input('請輸入用于訓練的樣本數:');
chara_num=input('請輸入用于識別的特征數:');
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);
abs_Num=0;
ojl_Num=0;
Sum=zeros(3,1);
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
Sum(ii,1)=sum(abs(Sample-Template(ii,:)));
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I]=min(Sum);
[Result,I1]=min(Sum1);
if I==1
abs_Num=abs_Num+1;
end
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
Sum(ii,1)=sum(abs(Sample-Template(ii,:)));
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I]=min(Sum);
[Result,I1]=min(Sum1);
if I==2
abs_Num=abs_Num+1;
end
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
Sum(ii,1)=sum(abs(Sample-Template(ii,:)));
Sum1(ii,1)=sqrtm(sum((Sample-Template(ii,:)).^2));
end
[Result,I]=min(Sum);
[Result,I1]=min(Sum1);
if I==3
abs_Num=abs_Num+1;
end
if I1==3
ojl_Num=ojl_Num+1;
end
end
end
end
end
disp('絕對值距離的識別率是:');
abs_Num/test_num
disp('歐幾里德識別率是:');
ojl_Num/test_num
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -