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

use*_*077 4 matlab

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

Point (x,y)
Type (1-6)
Run Code Online (Sandbox Code Playgroud)

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

Lst(Lst.Type==1);
Run Code Online (Sandbox Code Playgroud)

因为型号将无法正常工作不是一个领域Lst,但的Lst(i).

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

s.b*_*ara 6

L1 = Lst([Lst.Type]==1);会给你的子集L1的Lst地方Type == 1.

同样,您可以使用idx1 = find([Lst.Type]==1)记忆索引.

编辑:上述用途,[]操作者向域元素聚集Type的Lst成阵列.对于您的评论/问题,您也可以使用完全相同的运算符来获取X结构化数组子集的特定字段元素的数组,如

X1 = [Lst([Lst.Type]==1).X];
Run Code Online (Sandbox Code Playgroud)