• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 0 次
    发布日期: 2024-01-28
  • 语言: Matlab
  • 标签: CCA  特征融合  降维  

资源简介

CCA 特征融合 降维 matlab程序实现 多元统计应用

资源截图

代码片段和文件信息

function [ SolVecs ] = CCA_zq ( X  M ClassNum )
%X        ---训练样本特征向量(列向量),把每个样本的两组特征向量,按照特征向量的维数由小到大首尾相连。
%M        ---存储两组特征向量维数的数组(列向量)
%ClassNum ---类别数
%SolVecs  ---求得的近似解向量
%Author   ---陆凤娟、周强(本程序是在陆凤娟师姐程序基础上直接截取添加所得) 南京理工大学603教研室 moxibingdao@qq.com

% %以下为添加改动部分
pcafeature=X(1:M(1):);
TrainImage1=pcafeature;
otherfeature=X(1+M(1):M(1)+M(2):);
TrainImage2=otherfeature;
cn=ClassNum;
train_NUM=size(X2)/ClassNum;
N=(train_NUM)*cn;
vec_dim1=M(1);
vec_dim2=M(2);
% %以上为添加改动部分

disp(‘计算Sxx...‘);
%求Swx
Sxx = zeros(vec_dim1vec_dim1);
I = eye(vec_dim1);
for i =1:cn
    within_xx = zeros(vec_dim1vec_dim1);
%    temp = TrainImage1(:(i-1)*train_NUM + 1:i*train_NUM );
    for j=1:train_NUM
%         x = TrainImage1(:(i-1)*train_NUM + j) - mean2(TrainImage1(:(i-1)*train_NUM + 1:i*train_NUM ));
        x = TrainImage1(:(i-1)*train_NUM + j) - mean(TrainImage12);%mean(temp2);
        within_xx = within_xx + x*x‘;
    end;
    Sxx = Sxx + within_xx;
end;
Sxx = Sxx ;


disp(‘计算Syy...‘);
%求Syy
Syy = zeros(vec_dim2vec_dim2);
I = eye(vec_dim2);
for i =1:cn
    within_yy =  zeros(vec_dim2vec_dim2);
%     temp = TrainImage2(:(i-1)*train_NUM + 1:i*train_NUM );
    for j=1:train_NUM
        y = TrainImage2(:(i-1)*train_NUM + j) - mean(TrainImage22);% mean(temp2);
        within_yy = within_yy + y*y‘;
    end;
    Syy = Syy + within_yy;
end;
Syy = Syy;

disp(

评论

共有 条评论