资源简介
实现了基于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实现样本熵算法
相关资源
- 使用MATLAB实现样本熵算法
- 谢季坚《模糊数学方法及其应用》
- MATLAB Programming for Engineers 5th
- MATGPR_R3探地雷达数据处理MATLAB程序
- MATLAB仿真.pdf
- 卡尔曼滤波原理及应用 matlab仿真
-
基于MATLAB/Simuli
nk的系统仿真技术与 - MATLAB数字信号处理 王彬著
- SAR-Signal-Processing-with-Matlab
- 精通Matlab 7
- MATLAB数学建模与仿真 pdf
- 粒子滤波原理及应用 MATLAB仿真 pdf
- seksgui v1.0.3
- 冈萨雷斯 数字图像处理 matlab书本图片
- Coursera吴恩达机器学习课程作业资料
- 智能优化算法及其MATLAB-(第2版)
- Matlab图库
- 图像配准技术及其MATLAB编程实现_陈显
- 数字图像处理MATLAB版.中文版
- 卫星定位-卡尔曼滤波-MATLAB程序
- 控制数学问题的MATLAB求解PDF
- 精通matlab最优化计算 第二版
- 数字彩色图像的哈夫曼编码与解码的
- 冈萨雷斯 《数字图像处理matlab版》
- ORB遥感全景图像拼接.rar
- Matlab在FPGA中的应用书+光盘
- PLDA模型训练matlab代码
- MATLAB图像处理详解.pdf清晰版
- MATLAB 7 界面设计与编译技巧
- 电力电子技术的MATLAB实践
评论
共有 条评论