tmpparp=[tmpparp;off_parp];
时间: 2023-11-30 10:02:38 浏览: 146
这是一个将两个矩阵连接起来的操作,具体来说,`tmpparp`是一个存储父代和子代个体的矩阵,`off_parp`是新生成的子代个体矩阵。`tmpparp=[tmpparp;off_parp]`表示将`off_parp`矩阵连接在`tmpparp`矩阵的下方,即将新生成的子代个体加入到原有的父代个体中。这个操作可以将交叉操作生成的子代个体加入到父代个体中,以备后续的选择和进化操作使用。
相关问题
[off_mem,off_parp,Parent1,label_off]=offspring_preselection(tmpp,mem_p,tmpn,mem_n,correct_rate,1,idsp,idsn,labelo);
这是一个调用函数`offspring_preselection`的操作,用于进行子代个体的预选择。具体来说,`tmpp`是父代个体的矩阵,`mem_p`是父代个体的类别归属信息,`tmpn`是非父代个体的矩阵,`mem_n`是非父代个体的类别归属信息,`correct_rate`是交叉操作的正确率,`1`表示进行的是单点交叉操作,`idsp`是父代个体的索引,`idsn`是非父代个体的索引,`labelo`是标签信息。函数返回值包括`off_mem`,`off_parp`,`Parent1`和`label_off`四个变量。其中,`off_mem`是子代个体的类别归属信息矩阵,`off_parp`是子代个体的矩阵,`Parent1`是进行交叉操作的父代个体索引,`label_off`是交叉后的子代个体标签信息。
function [par,label]=training_data(Arc) [~,FrontNo,CrowdDis] = EnvironmentalSelection_NSGAII(Arc,size(Arc.objs,1)); t2=find(FrontNo(1,:)<=1); parpop=Arc.decs; parp=parpop(t2,:); t3=find(FrontNo(1,:)>1); parn=parpop(t3,:); par = [parp;parn]; label = 2*ones(size(par,1), 1); label(1:size(parp,1)) = 1; end
这段代码是用于生成训练数据的。它的输入参数是一组解集合 Arc,通过调用 EnvironmentalSelection_NSGAII 函数来对其进行非支配排序,从而得到每个解的前沿等信息。然后,根据前沿信息将解集分为两部分,一部分是前沿解集,另一部分是非前沿解集。最后,将这些解作为训练数据,并将前沿解标记为1,非前沿解标记为2。函数的输出是生成的训练数据 par 和对应的标签 label。
阅读全文