How do you extract the elements of a cell that have the largest length?
3 views (last 30 days)
Show older comments
Given a cell A, I can find the maximum length by
[s,d] = cellfun(@size,A);
out = max([s,d]);
But how do I find the elements in A that have the length given by out? For example, given the cell array consisting of {[7 8 9]} {[6 10]} {[4 5 6 7]} {[1 2 3 4]}, extract {[4 5 6 7]} and {[1 2 3 4]}, which each have a length of 4.
0 Comments
Accepted Answer
Mathieu NOE
on 16 Mar 2022
hello
here my suggestion
A = [{[7 8 9]} {[6 10]} {[4 5 6 7]'} {[1 2 3 4]'}];
[s,d] = cellfun(@size,A);
out = max([s,d],[],'all');
ind = find(d == out | s == out) ;
A_selected = A(ind)
0 Comments
More Answers (2)
Stephen23
on 16 Mar 2022
C = {[7,8,9],[6,10],[4,5,6,7],[1,2,3,4]}
N = cellfun('length',C);
X = max(N)==N;
D = C(X)
0 Comments
David Hill
on 16 Mar 2022
[s,d] = cellfun(@size,A);
m = max([s,d],[],'all');
idx=s==m|d==m;
Anew=A(idx);
0 Comments
See Also
Categories
Find more on Matrices and Arrays 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!