如何根据字段值提取字段

时间:2018-09-07 13:13:19

标签: matlab struct cell

%Input structure
s.a=[1; 2; 1; 3; 4; 1; 2]
s.b=[4; 9; 7; 1; 0; 3; 8]
% output required
s.a=[1; 1; 1]
s.b=[4; 7; 3]

实际结构包含许多长尺寸的字段。当为字段'a'设置条件时(当a == 1时)如何提取相应的字段值。

1 个答案:

答案 0 :(得分:3)

尝试一下并适应其他领域:

s.b(s.a==1)

要对 s 中除 a 以外的所有字段执行此操作,并将结果收集到结构 t 中,可以使用循环:

t = struct()
fn = fieldnames(s);
for k=1:numel(fn)
    t.(fn{k}) = s.(fn{k})(s.a==1);
end