• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-02-11
  • 语言: Matlab
  • 标签: PCA  光谱  particularly  

资源简介

本程序利用matlab语言,实现了对高光谱遥感图像的读取并做主成分分析,将结果按贡献率大小顺序排列并显示出来。

资源截图

代码片段和文件信息

clearclose all
%读数据
fid=fopen(‘C:\Program Files\ITT\IDL71\products\envi47\data\cup95effbsq‘‘r‘);
M=400;
N=350;
band=50;
R=zeros(MNband);
for i=1:band;
     F=fread(fid[M N]‘int16‘);
   R(::i)=F; %取得第i波段光谱图像
end
fclose(fid)
imshow(R(::1)[])%显示第i波段图像
%协方差矩阵
r(1:band1:band)=0;
v(1:band)=0;
for i=1:M
    for j=1:N
        a(1:band)=R(ij1:band);
        r=r+a‘*a;
        v=v+a;
    end
end
r=r/(M*N);
v=v/(M*N);
C=r-v‘*v;%协方差矩阵cov(XY)=E(XY)-E(X)E(Y)
%主成分变换
[Tlambda]=eig(C);%协方差矩阵的特征向量T
newlamda=diag(lambda);                 %diag函数提取对角元素
[yi]=sort(newlamda);                 %对特征值进行从小到大排序,y为排序后的值,i为序号
for z=1:length(y)
newy(z)=y(length(y)+1-z);           %newy为按照特征值从大到小排序后的结果
end
rate=y/sum(y)   
newra

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1752  2010-10-24 21:03  pca.m

----------- ---------  ---------- -----  ----

                 1752                    1


评论

共有 条评论