Finding arrays above threshold value
4 views (last 30 days)
Show older comments
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?
Thanks
2 Comments
Stephen23
on 16 Apr 2019
"I have a struct AT.AX"
"Is there a way to find all the cells ..."
Structure arrays do not have cells (but they do have elements).
Please clarify if you have a structure array or a cell array.
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)
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) ;
end
% Pick cells whose length greater than 500
L = cellfun(@length,A) ;
B = A(L>500)
See Also
Categories
Find more on Environment and Settings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!