资源简介
实现了基于matlab下的KL变换的详细代码,内容比较详细。

代码片段和文件信息
function [tezhivectorJfeaflag]=kltransform(dataclassnumsfeanumsnumsofoneselfeanumspanju)
%特征提取
if(size(data2)~=feanums)
data=data‘;
end
if(numsofone*classnums~=size(data1))
disp(‘shu ru shu ju wei shu chu cuo‘)
return;
end
if(panju<0|panju>7)
sprintf(‘suo shu ru de panju ge shu bi xu zai %d he %d zhi jiannot %d‘17panju)
return;
end
sw=zeros(feanumsfeanums);
rx=zeros(feanumsfeanums);
sb=zeros(feanumsfeanums);
classmean=zeros(classnumsfeanums);
totalmean=zeros(1feanums);
totalmean=mean(data);
a=zeros(feanumsfeanums);
plei=1.0/classnums;
zongnums=classnums*numsofone;
J=zeros(1feanums);
feaflag=zeros(1feanums);
vector=zeros(feanumsfeanums);
tezhi=zeros(1feanums);
for nums=1:classnums
classmean(nums:)=mean(data((nums-1)*numsofone+1:nums*numsofone:));
end
for nums=1:classnums
for geshu=(nums-1)*numsofone+1:nums*numsofone
a=(data(geshu:)-classmean(nums:))‘*(data(geshu:)-classmean(nums:));
sw=sw+a;
rx=rx+(data(geshu:)-totalmean(1:))‘*(data(geshu:)-totalmean(1:));
end
sb=sb+(classmean(nums:)-totalmean(1:))‘*(classmean(nums:)-totalmean(1:));
end
sw=sw*plei/numsofone;
rx=rx/zongnums;
sb=sb*plei;
if(panju==1)
[vectora]=eig(rx);% panju==1 zi xiang guan ju zhen kl bian huan
elseif(panju==2)
[vectora]=eig(sw); %panju==2lei nei li san du ju zhen kl bian huan
elseif(panju==3)
if(det(sw)==0)
disp(‘this critia does not worksw is singular‘)
return;
end
[vectora]=eig(sb/sw); %panju==3sb/sw kl bian huan
elseif(panju==4) %panju=4 lei ping jun xiang liang de zui you ya suo
[vectora]=eig(sw);
baihua=zeros(feanumsfeanums);
for feas=1:feanums
baihua(:feas)=vector(:feas)/(a(feasfeas)^(1/2));
end
sbb=baihua‘*sb*baihua;
[wa]=eig(sbb);
vector=baihua*w;
elseif(panju==5) %panju=5lei jun zhi xin xi ti qu?
[vectora]=eig(sw);
for feas=1:feanums
J(1feas)=vector(:feas)‘*sb*vector(:feas);
J(1feas)=J(1feas)/a(feasfeas);
end
elseif(panju==6) %panju==6fang cha xin xi ti qu
[vectora]=eig(sw);
leicov=zeros(feanumsfeanums);
leitezhi=zeros(classnumsfeanums);
for nums=1:classnums
for geshu=(nums-1)*numsofone+1:nums*numsofone
leicov=leicov+(data(geshu:)-classmean(nums:))‘*(data(geshu:)-classmean(nums:));
end
leicov=leicov/numsofone;
c=vector‘*leicov*vector;
for feas=1:feanums
leitezhi(numsfeas)=plei*c(feasfeas)/a(feasfeas);
end
end
leitezhi;
for feas=1:feanums
J(feas)=0;
for nums=1:classnums
J(feas)=J(feas)-leitezhi(numsfeas)*log(leitezhi(numsfeas));
end
end
%J=prod(leitezhi);
elseif(panju==7)
[vectora]=eig(sb);
end
tezhi=zeros(1feanums);
for feas=1:feanums
tezhi(1feas)=a(feasfeas);
end
if(panju<=4|panju==7)
sumtezhi=sum(tezhi);
J=tezhi/sumtezhi;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 707 2002-05-02 08:43 特征选择与提取zch\NEAREST.M
文件 788 2002-05-02 18:29 特征选择与提取zch\TONGJI.M
文件 345 2002-04-21 22:02 特征选择与提取zch\XUANLIE.M
文件 4031 2002-05-02 18:28 特征选择与提取zch\kltransform.m
文件 25321 2002-04-23 08:49 特征选择与提取zch\tezhengtiqu.m
文件 248 2002-04-21 21:47 特征选择与提取zch\writetofile.m
文件 190 2002-04-21 22:34 特征选择与提取zch\writexinxi.m
目录 0 2017-05-13 15:49 特征选择与提取zch\
- 上一篇:simuli
nk通信实验 - 下一篇:使用MATLAB实现样本熵算法
相关资源
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
评论
共有 条评论