如何通过指定属性值的范围来查找对象?

时间:2017-09-21 22:28:33

标签: matlab sorting oop object properties

在Matlab中我定义了一个类并创建了一堆对象,如何通过指定某个属性的范围来选择所有对象的子集?

例如,如果我有一个person类,其属性为name(char)和height(double),我怎么能找到所有person height 1}}在x和y之间?

在此documentation中,它使用findobj查找char属性与完全值匹配的对象,例如

NW = findobj(PB,'Name','Nancy Wong');

但我怎么能为数值和范围做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以根据所需条件手动创建逻辑矢量,并使用选择对象:

h = [PB.height]; % collect all height values in a vector
ind = (x<=h) & (h<=y); % logical index of values in the desired range
NW = PB(ind); % apply that index to select objects