📄 calfitvalue.m
字号:
%计算个体的适应值
%遗传算法子程序
%计算个体的适应值
%Name:calfitvalue.m
function fitvalue=calfitvalue(pop,difference,M1,M2)
[px,py]=size(pop);
fitvalue=zeros(1,px); %px为染色体的个数
fitvalue_column=1;
for i=1:px
M_sum_fangcha=pop(i,:)*difference; %M_fangcha为基于同一个特征,两类的类间方差与类内方差的差值。因此,M_fangcha是一个类间方差与类内方差的差值向量
q=sum(pop(i,:)); %扫描每一行,也就是扫描每一个染色体。记录下每个染色体中为1的总数,即被选中的特征数
Temp_feature=zeros(1,q); %生成一个向量列数为被选中的特征数,目的是为了记录被选中的特征的序号,以方便后续计算特征间的相关系数
qq=1;
for j=1:py
if pop(i,j)==1
Temp_feature(1,qq)=j;
qq=qq+1;
end
end
p_corr_sum=0;
for jj=1:q-1 %计算特征间的相似系数
z1=Temp_feature(1,jj);
z2=Temp_feature(1,jj+1);
p_corr1=abs(corr2(M1(:,z1),M1(:,z2))); %计算某一类成分的两类特征下的向量,例如M_red(:,z1)为红细胞特征1面积的向量,M_red(:,z2)为红细胞特征2半径的向量,而面积和半径是相关的
p_corr2=abs(corr2(M2(:,z1),M2(:,z2))); %计算某一类成分的两类特征下的向量相关性越小越好
p_corr=(p_corr1+p_corr2)/2;
p_corr_sum=p_corr_sum+p_corr;
end
fitvalue(1,i)=M_sum_fangcha-p_corr_sum;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -