在Matlab中我定义了一个类并创建了一堆对象,如何通过指定某个属性的范围来选择所有对象的子集?
例如,如果我有一个person
类,其属性为name
(char)和height
(double),我怎么能找到所有person
height
1}}在x和y之间?
在此documentation中,它使用findobj
查找char
属性与完全值匹配的对象,例如
NW = findobj(PB,'Name','Nancy Wong');
但我怎么能为数值和范围做到这一点?
答案 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