作业帮 > 综合 > 作业

解释matlab代码计算适应度

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 14:13:06
解释matlab代码计算适应度
Init=randn(128,256);
% load Init2; %采样30%,77*256 %%返回一个128*256的随机项矩阵.
% load init1; %采样50%,128*256
sen=Init;% 观测矩阵
[xx yy]=size(T);%读取字典大小 %%确定矩阵T的维数行为xx 列为yy
atom=T;%冗余字典
Dhat=sen*atom;
cancha=zeros(Ps,1);%残差信号
qun=ceil(rand(SP,Ps).*K);
%计算种群中各个个体的适应度
for k=1:Ps
di=qun(:,k);
A=Dhat(:,di);
a=pinv(A)*yy; %%pinv求矩阵的广义逆
residual=yy-A*a;
cancha(k)=1/sum(residual.^2); %残差的倒数,即残差越小,适应度值越高
end
Init2 Init1是什么东东呢?
di是个32*1的矩阵,qun是128*4745的矩阵 ,A=Dhat(:,di);这句话是什么意思?
for循环中的代码不太懂意思,
Init2  Init1 应该是两个后缀为.mat的文件,放在当前.m文件的同一目录下.load可以加载里面的数据Dhat应该是一个大矩阵吧.意思是从Dhat里面取出一些列拼成A矩阵,而要取的列的序号就存在向量di中.也就是说,A是一个32列的矩阵,具体是Dhat中的那些列,就看di里的内容了不懂什么是适应度