⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a9.m

📁 matlab遗传算法源码,英国社菲尔德工具箱
💻 M
字号:
function coef=corrcoef1(x,y)   % 计算x和y的相关系数函数,x为单序列,y为复序列
[m,n]=size(y); 
coef=zeros(m,1);
for i=1:m
  coef(i)=sum(abs(conv(x,y(i,:))))/sqrt( sum(abs(conv(x,x)))*sum(abs(conv(y(i,:),y(i,:)))) );
end
function class=recognite(signal,inform) ;  % 目标识别函数 
% signal为待识别目标的雷达信号;inform为目标识别数据库中的模板信号
NIND = 20;                     	% 个体数目(Number of individuals)
MAXGEN =200;                  	% 最大遗传代数(Maximum number  of generations)
Type=10;Angle=20;               	% 目标类型10bit,雷达视角20bit
PRECI = Type + Angle;            	% 变量的二进制位数(Precision of variables)
GGAP = 0.9;                    	% 代沟(Generation gap)
FieldD = [PRECI;1;NIND;1;0;1;1];   	% 区域描述器(Build field descriptor)
Chrom = crtbp(NIND, PRECI);      	% 创建初始种群  
gen = 0;                         
v=bs2rv(Chrom,FieldD);           	% 种群十进制转换
class=round(v);                   	% 取整
ObjV = corrcoef1(signal,inform(class,:)); 	% 计算相关系数
trace=zeros(MAXGEN);              	% 性能跟踪
while gen < MAXGEN,                  
FitnV = ranking(-ObjV);            	% 分配适应度值(Assign fitness values)
SelCh = select('sus', Chrom, FitnV, GGAP);  % 选择
SelCh = recombin('xovsp',SelCh,0.7);       % 重组
SelCh = mut(SelCh);                    	%  变异
v=bs2rv(SelCh,FieldD);
class=round(v);
ObjVSel = corrcoef1(signal,inform(class,:));  %  计算目标函数相关系数
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);    % 重插入
gen = gen+1;              
trace(gen)=max(ObjV);
end
% 输出最优解及其序号,并在目标函数图象中标出,Y为最优解,I为种群的序号
[Y,I]=max(ObjV); 
Type=round(bs2rv(Chrom(I,1:Type),FieldD));          % 目标类型编号
Angle=round(bs2rv(Chrom(I,Type+1:Angle),FieldD));   % 雷达视角编号
plot(trace);hold on; 
plot(trace,'.'); grid;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -