Azzera filtri
Azzera filtri

Help finding cell array indices for unique characters in string names

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Voss
Voss il 20 Ott 2023
A more direct way of creating the cell array names is:
names = {'*H','HO2','*H2','H2O','H2O2','*O','*OH','*O2','O3','H2O(S)'};

Accedi per commentare.

Risposta accettata

Sulaymon Eshkabilov
Sulaymon Eshkabilov il 20 Ott 2023
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"))
TF = 1×3
1 1 1
IDX = 1×3
4 5 10

Più risposte (1)

the cyclist
the cyclist il 20 Ott 2023
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')
ans = 1×10 logical array
0 0 0 1 1 0 0 0 0 1

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Prodotti


Release

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by