Return index of cell in a cell array for which contains a desired element
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
hmhuang
el 20 de Feb. de 2022
Comentada: Voss
el 20 de Feb. de 2022
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 comentarios
Respuesta aceptada
Voss
el 20 de Feb. de 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 comentario
Voss
el 20 de Feb. de 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
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!