Return index of cell in a cell array for which contains a desired element
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a cell array:
C = {[1,2,4], [3,5], [8,9]}
I would like to have a function, such that:
somefunc(C, 2) % will return 1, indicating that 2 is in the 1st cell of the cell array
somefunc(C, 8) % will return 3, indicating that 8 is in the 3rd cell of the cell array
somefunc(C, 7) % will return 0 or -1 or whatever that is not 1 or 2, or 3
Is there any MATLAB built-in function that could achieve this purpose?
Thanks in advance!
(Assume the elements in the cell array are unique.)
0 commentaires
Réponse acceptée
Voss
le 20 Fév 2022
C = {[1,2,4], [3,5], [8,9]};
find(cellfun(@(x)ismember(2,x),C))
find(cellfun(@(x)ismember(8,x),C))
find(cellfun(@(x)ismember(7,x),C))
1 commentaire
Voss
le 20 Fév 2022
Or, making that command into a function you can call:
C = {[1,2,4], [3,5], [8,9]};
find_cell_containing(C,2)
find_cell_containing(C,8)
find_cell_containing(C,7)
function idx = find_cell_containing(C,in)
idx = find(cellfun(@(x)ismember(in,x),C));
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!