How do you extract the elements of a cell that have the largest length?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Mathieu NOE
il 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 Commenti
Più risposte (2)
Stephen23
il 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 Commenti
David Hill
il 16 Mar 2022
[s,d] = cellfun(@size,A);
m = max([s,d],[],'all');
idx=s==m|d==m;
Anew=A(idx);
0 Commenti
Vedere anche
Categorie
Scopri di più su Matrices and Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!