Как извлечь поле на основе значения поля - PullRequest
0 голосов
/ 07 сентября 2018
%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 голосов
/ 07 сентября 2018

Попробуйте это и адаптируйтесь к другим полям:

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
...