解释matlab代码计算适应度Init=randn(128,256); % load Init2; %采样30%,77*256 %%返回一个128*256的随机项矩阵.% load init1; %采样50%,128*256sen=Init;% 观测矩阵[xx yy]=size(T);%读取字典大小 %%确定矩阵T的维数行为xx
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 22:50:00
解释matlab代码计算适应度Init=randn(128,256); % load Init2; %采样30%,77*256 %%返回一个128*256的随机项矩阵.% load init1; %采样50%,128*256sen=Init;% 观测矩阵[xx yy]=size(T);%读取字典大小 %%确定矩阵T的维数行为xx
解释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循环中的代码不太懂意思,
解释matlab代码计算适应度Init=randn(128,256); % load Init2; %采样30%,77*256 %%返回一个128*256的随机项矩阵.% load init1; %采样50%,128*256sen=Init;% 观测矩阵[xx yy]=size(T);%读取字典大小 %%确定矩阵T的维数行为xx
Init2 Init1 应该是两个后缀为.mat的文件,放在当前.m文件的同一目录下.load可以加载里面的数据
Dhat应该是一个大矩阵吧.意思是从Dhat里面取出一些列拼成A矩阵,而要取的列的序号就存在向量di中.也就是说,A是一个32列的矩阵,具体是Dhat中的那些列,就看di里的内容了
不懂什么是适应度