How do you extract the elements of a cell that have the largest length?
조회 수: 4 (최근 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에서 Get Started with MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!