📄 pca_svm_testx.m
字号:
%本程序与 Tpca_svm_train一起使用
function main
clear all
disp('程序正在运行')
load traindata.mat;
global svm_classpara;
global Proaxis;
global MIXimage_mean;
load CBTR_mag.mat
[Sample_test]=subfunction1(mobandata);
load CBTR_fw.mat
fw=FW;
[BTR_result,BTR_percent]=subfunction2(Sample_test,fw)
clear fw;
clear Sample_test;
load CT72_132_mag.mat
[Sample_test]=subfunction1(mobandata);
load CT72_132_fw.mat
fw=FW;
[CT72_132_result,CT72_132_percent]=subfunction2(Sample_test,fw)
clear fw;
clear Sample_test;
% load CT72_812_mag.mat
% [Sample_test]=subfunction1(mobandata);
% load CT72_812_fw.mat
% fw=FW;
% [CT72_812_result,CT72_812_percent]=subfunction2(Sample_test,fw)
% clear fw;
% clear Sample_test;
% load CT72_s7_mag.mat
% [Sample_test]=subfunction1(mobandata);
% load CT72_s7_fw.mat
% fw=FW;
% [CT72_s7_result,CT72_s7_percent]=subfunction2(Sample_test,fw)
% clear fw;
% clear Sample_test;
load CBMP_c21_mag.mat
[Sample_test]=subfunction1(mobandata);
load CBMP_c21_fw.mat
fw=FW;
[CBMP_c21_result,CBMP_c21_percent]=subfunction2(Sample_test,fw)
clear fw;
clear Sample_test;
% load CBMP_9563_mag.mat
% [Sample_test]=subfunction1(mobandata);
% load CBMP_9563_fw.mat
% fw=FW;
% [CBMP_9563_result,CBMP_9563_percent]=subfunction2(Sample_test,fw)
% clear fw;
% clear Sample_test;
%
% load CBMP_9566_mag.mat
% [Sample_test]=subfunction1(mobandata);
% load CBMP_9566_fw.mat
% fw=FW;
% [CBMP_9566_result,CBMP_9566_percent]=subfunction2(Sample_test,fw)
% clear fw;
% clear Sample_test;
%
disp('分类完成')
%%%%%%%%%%%%%%%%%%%%%%%%subfunction 2 %%%%%%%%%%%%%%%%%%%%
function [result,percent]=subfunction2(Sample_test,fw)
global svm_classpara;
global Proaxis;
global MIXimage_mean;
n1=0;
n2=1;
Parameters=[2,1,0.75,1,10,35,0.001,0,0.3,0.3];%10月10日2点
d=1; %多项式核函数阶数
for k=1:length(fw)
for n=1:6 %%%%%%判断输入图象的方位
if (fw(k)/60)>=n1&(fw(k)/60)<n2
j=n2;
break
else
n1=n1+1;
n2=n2+1;
end
end
fea=(Sample_test(k,:)-MIXimage_mean(j,:))*Proaxis{j}; %广逆矩阵 (1*2113-1*2113)*2113*83=1*83
touying=fea';%83*1
Alphay_hp=svm_classpara{j}{1};%1*175
SVs_hp=svm_classpara{j}{2};%83*175
Bias_hp=svm_classpara{j}{3};
Para_hp=svm_classpara{j}{4};%1*11
Ns_hp=svm_classpara{j}{5};%1*3
[Labels,scores]=osuSVMClass(touying,Ns_hp,Alphay_hp, SVs_hp, Bias_hp, Parameters);
Labels_hp(k)=Labels;
end
T72_num=size(find(Labels_hp==1));
BMP_num=size(find(Labels_hp==2));
BTR_num=size(find(Labels_hp==3));
result=[T72_num(2) BMP_num(2) BTR_num(2)];
percent=max(result)/sum(result);
%%%%%%%%%%%%%%%%%%%%%% SUBFUNCTION 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% This function is to realize fft of chips %%%%%%%%%%%%%%%%%%%%
function [chips]=subfunction1(mobandata)
for k=1:length(mobandata)
chp=log10(mobandata{k}(33:97,33:97)+1);%取出65*65
fft_chip=fftshift(abs(fft2(chp)));
fft_chip=fft_chip/max(max(fft_chip)); %幅度归一
cut_chip1=fft_chip(1:65,33:65);%取出一半幅频信息
X_chip1=reshape(cut_chip1,1,65*33);%形成列矢量
chips(k,:)=X_chip1(33:65*33);%去掉一半直流
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -