Extracting strings in a cell array that contain certain characters
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a large cell array (size undefined/changes) with each cell containing a string of five letters (words). I am trying to extract all the strings in the cell array that contain certain letters (number of letters and which letters chagnes/undefined).
For example:
words =
{'gamer'}
{'macho'}
{'mages'}
{'grail'}
letters =
'a'
'm'
'g'
and I'm trying to isolate
'gamer' and 'mages' because they contain all three letters.
The number of words in the cell array changes and the number of letters in the variable letters changes as well. Does anyone know how to go about this? I am struggling using the contains function without hard coding it. Thank you so much!
0 Commenti
Risposte (2)
KSSV
il 29 Mar 2022
Modificato: KSSV
il 29 Mar 2022
There woul dbe definitely better optimal way then this.
str = [{'gamer'}
{'macho'}
{'mages'}
{'grail'}] ;
letters = {'a' 'm' 'g'} ;
str = reshape(cellstr([str{:}]'),5,[])' ; % there could be another optimal way for this
[c,ia] = ismember(str,letters,'row') ;
sum(c,2) % this gives the total number of letters present in each word
Stephen23
il 29 Mar 2022
W = {'gamer';'macho';'mages';'grail'};
L = 'amg';
X = cellfun(@(w)all(ismember(L,w)),W);
Z = W(X)
0 Commenti
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!