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代码计算适应度
答案:2 悬赏:10 手机版
解决时间 2021-03-11 21:04
- 提问者网友:了了无期
- 2021-03-11 01:08
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-03-11 02:09
1. Init2 Init1 应该是两个后缀为.mat的文件,放在当前.m文件的同一目录下。load可以加载里面的数据
2. Dhat应该是一个大矩阵吧。意思是从Dhat里面取出一些列拼成A矩阵,而要取的列的序号就存在向量di中。也就是说,A是一个32列的矩阵,具体是Dhat中的那些列,就看di里的内容了
3. 不懂什么是适应度
2. Dhat应该是一个大矩阵吧。意思是从Dhat里面取出一些列拼成A矩阵,而要取的列的序号就存在向量di中。也就是说,A是一个32列的矩阵,具体是Dhat中的那些列,就看di里的内容了
3. 不懂什么是适应度
全部回答
- 1楼网友:西岸风
- 2021-03-11 03:44
适应度和你的目标函数有关
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯