按照元素指定条件筛选结构体数组
按照元素指定条件筛选结构体数组
觉得有用的话,欢迎一起讨论相互学习~
定义一个类
classdef Chromosome
properties
skill_factor;
end
- Chromosome类有一个属性
根据Chromosome类生成N个对象
- 这里假设N==6,并且生成的N个对象本质是结构体数组
for i=1:N
% 新建一个染色体类
% 这里population是一个Chromosome类型的结构体数组
population(i)=Chromosome;
% 设置每个population实例的skill_factor
if i<=N/2
population(i).skill_factor=1;
else
population(i).skill_factor=2;
end
end
如果想挑选出所有skill_factor==1的结构体
population_T1=population([population.skill_factor]==1)
- 由于结构体数组中所有字段均包含相同类型的数据并且可以构成超矩形,则可以串联列表项 ,即skill_factor中存储的数据类型相同并可以串成矩阵。 具体结构体元素访问可以查看这篇博客
- 因此,
[population.skill_factor]
返回的是 括号不要掉!!1 1 1 0 0 0
- 而([population.skill_factor]==1) 返回的也是
1 1 1 0 0 0
表示这个表达式子的正确与错误。而根据这个类似true和false的语句,可以将population中满足条件的结构体挑选出来!!!