Effacer les filtres
Effacer les filtres

How do you extract the elements of a cell that have the largest length?

3 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

Mathieu NOE
Mathieu NOE le 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)

Plus de réponses (2)

Stephen23
Stephen23 le 16 Mar 2022
C = {[7,8,9],[6,10],[4,5,6,7],[1,2,3,4]}
C = 1×4 cell array
{[7 8 9]} {[6 10]} {[4 5 6 7]} {[1 2 3 4]}
N = cellfun('length',C);
X = max(N)==N;
D = C(X)
D = 1×2 cell array
{[4 5 6 7]} {[1 2 3 4]}

David Hill
David Hill le 16 Mar 2022
[s,d] = cellfun(@size,A);
m = max([s,d],[],'all');
idx=s==m|d==m;
Anew=A(idx);

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by