How do you extract the elements of a cell that have the largest length?
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Mathieu NOE
2022-3-16
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 个评论
更多回答(2 个)
Stephen23
2022-3-16
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 个评论
David Hill
2022-3-16
[s,d] = cellfun(@size,A);
m = max([s,d],[],'all');
idx=s==m|d==m;
Anew=A(idx);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!