Help finding cell array indices for unique characters in string names
4 次查看(过去 30 天)
显示 更早的评论
How might i search a cell array for indices corresponding to character strings containing, say, 'H2O' as part of the full name. Tried:
exact_match_mask = strcmp(names, 'H2O'); exact_match_locations = find(exact_match_mask);
but it only identifies index 4. I need to identify the abcH2Oxyz possibility to capture indices 4 and 10.
names = cell(1, 10);
names{1} = '*H';
names{2} = 'HO2';
names{3} = '*H2';
names{4} = 'H2O';
names{5} = 'H2O2';
names{6} = '*O';
names{7} = '*OH';
names{8} = '*O2';
names{9} = 'O3';
names{10} = 'H2O(S)';
4 个评论
Voss
2023-10-20
A more direct way of creating the cell array names is:
names = {'*H','HO2','*H2','H2O','H2O2','*O','*OH','*O2','O3','H2O(S)'};
采纳的回答
Sulaymon Eshkabilov
2023-10-20
All combined into one:
names = cell(1, 10);
names{1} = '*H';
names{2} = 'HO2';
names{3} = '*H2';
names{4} = 'H2O';
names{5} = 'H2O2';
names{6} = '*O';
names{7} = '*OH';
names{8} = '*O2';
names{9} = 'O3';
names{10} = 'H2O(S)';
[TF, IDX] = find(contains(names,"H2O"))
更多回答(1 个)
the cyclist
2023-10-20
names = cell(1, 10);
names{1} = '*H';
names{2} = 'HO2';
names{3} = '*H2';
names{4} = 'H2O';
names{5} = 'H2O2';
names{6} = '*O';
names{7} = '*OH';
names{8} = '*O2';
names{9} = 'O3';
names{10} = 'H2O(S)';
contains(names,'H2O')
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!