Return index of cell in a cell array for which contains a desired element
1 回表示 (過去 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!