matlab - selecting specific cells in a structure array based on the values of the field -


data looks more this:

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]},'tr‌ial'{'correct','incorrect','incorrect','correct','correct'});  

this example , have other fields well

so example, want work cells in struct have trial correct, want select cells , store cells in separate struct. not sure if i'm clear or not apologize that.

same if want select cells direction field vector have here different sizes want select vectors elements "2" only.

thank you

you can filter elements trial = 'correct' this:

data = data(arrayfun(@(x) strcmp(x.trial, 'correct'), data)) 

if want filter elements direction = 2 (all values), this:

data = data(arrayfun(@(x) all(x.direction == 2), data)) 

or can above in 1 line this:

data = data(arrayfun(@(x) strcmp(x.trial, 'correct') & all(x.direction == 2), data)) 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -