根据条件从结构数组matlab中选择项目

时间:2013-01-06 07:35:41

标签: matlab

我有一个名为Lst的结构数组。每个结构都有以下形式:

Point (x,y)
Type (1-6)

我想为每种类型获取单独的点数组。我怎么能得到它?

Lst(Lst.Type==1);

不起作用,因为Type不是Lst的字段,而是Lst(i)的字段。

此外,有没有办法保存每个项目的索引或另一种方法,然后再将它们再次组合到原始订单?

1 个答案:

答案 0 :(得分:6)

L1 = Lst([Lst.Type]==1);将为L1 Lst提供Type == 1的子集idx1 = find([Lst.Type]==1)

同样,您可以使用[]来记忆索引。

编辑:上面使用Type运算符将Lst的字段元素X聚合到一个数组中。对于您的评论/问题,您也可以使用完全相同的运算符来获取结构化数组子集的特定字段元素X1 = [Lst([Lst.Type]==1).X]; 的数组,如

{{1}}