function [ ProjectedTrainSamples,ProjectedTestSamples ] = PCAProject ( TrainSamples ,TestSamples,ProNum )
%Function ---求取TrainSamples和TestSamples的ProNum维PCA投影特征,并进行归一化
%TrainSamples ---样本(每个样本为列向量)
%TestSamples ---样本(每个样本为列向量)
%ProNum ---PCA投影轴数
%ProjectedTrainSamples ---投影后的训练样本特征
%ProjectedTestSamples ---投影后的测试样本特征
%Author ---周强 南京理工大学603-2教研室 moxibingdao@qq.com
disp('计算PCA中.....');
SampleMean = mean(TrainSamples,2);
for i = 1:size(TrainSamples,2),
TrainSamples(:,i) = TrainSamples(:,i) - SampleMean;
end
for i = 1:size(TestSamples,2),
TestSamples(:,i) = TestSamples(:,i) - SampleMean;
end;
%%%%%%%%%%对图像矢量TrainImage1进行KL变换%%%%%%%%%%%%
Compress = KL(TrainSamples,ProNum);
ProjectedTrainSamples = TrainSamples'*Compress;
ProjectedTestSamples = TestSamples'*Compress;
%%%%%%%%%%%%%%%%%%%%%%归一化%%%%%%%%%%%%%%%%%%%%%%%%%%
s1=size(ProjectedTrainSamples,1);
ProjectedTrainSamples=ProjectedTrainSamples';
for i=1:1:s1
a=ProjectedTrainSamples(:,i);
b=a/norm(a);
ProjectedTrainSamples(:,i)=b;
end
s1=size(ProjectedTestSamples,1);
ProjectedTestSamples=ProjectedTestSamples';
for i=1:1:s1
a=ProjectedTestSamples(:,i);
b=a/norm(a);
ProjectedTestSamples(:,i)=b;
end