Return index of cell in a cell array for which contains a desired element
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Voss
2022-2-20
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 个评论
Voss
2022-2-20
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!