Finding arrays above threshold value

12 views (last 30 days)
I have a struct AT.AX
AX has the following values:
1x370 double
1x1007 double
1x3957 double
1x6309 double
1x1648 double
1x2032 double
1x1173 double
1x16837 double
1x15977 double
1x267 double
Is there a way to find all the elements with length greater than 2000 and assign them to a new variable?
Manny Kins
Manny Kins on 17 Apr 2019
Hi, I used the word cell quite carelessly, I had a structure array with elements. I have edited my question so it becomes a bit clearer to anyone else reading. Thanks again for your help.

Sign in to comment.

Accepted Answer

Stephen23 on 16 Apr 2019
Fake data:
AT(1).AX = rand(1,370);
AT(2).AX = rand(1,1007);
AT(3).AX = rand(1,3957);
AT(4).AX = rand(1,6309);
AT(5).AX = rand(1,1648);
AT(6).AX = rand(1,2032);
AT(7).AX = rand(1,1173);
AT(8).AX = rand(1,16837);
AT(9).AX = rand(1,15977);
AT(10).AX = rand(1,267);
And then simply:
L = cellfun('length',{AT.AX});
Z = AT(L>2000)
  1 Comment
Manny Kins
Manny Kins on 16 Apr 2019
Thank you for your help, KSSV also came up with a similar solution but this one is more directly applicable to my setup.

Sign in to comment.

More Answers (1)

KSSV on 16 Apr 2019
% Make some random data for demo
A = cell(10,1) ;
for i = 1:10
N = randperm(1000,1) ;
A{i} = rand(N,1) ;
% Pick cells whose length greater than 500
L = cellfun(@length,A) ;
B = A(L>500)


Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!