数据看起来更像是这样:
DATA = struct('Direction',{[1,1,1,1],[1,1,2,1],[2,2,2,2,2],[2,2,2,2,1,2],[2,2,2,2]},'Trial'{'correct','incorrect','incorrect','correct','correct'});
这只是一个例子,我还有其他字段
所以,例如,我只想处理struct
中具有correct
试验的单元格,所以我想选择那些单元格,我想将这些单元格存储在单独struct
。我不确定我是否清楚我为此道歉。
如果我只想选择那些作为向量的方向字段的单元格,就像我在这里使用不同大小但我想只选择那些所有元素都只是“2”的向量。
谢谢
答案 0 :(得分:1)
您只能使用Trial
= 'Correct'
过滤元素:
DATA = DATA(arrayfun(@(x) strcmp(x.Trial, 'correct'), DATA))
如果您还想仅过滤Direction
= 2
(所有值)的元素,那么也要这样做:
DATA = DATA(arrayfun(@(x) all(x.Direction == 2), DATA))
或者你可以像这样在一行中完成所有这些:
DATA = DATA(arrayfun(@(x) strcmp(x.Trial, 'correct') & all(x.Direction == 2), DATA))