Finding all occurences of a string within a cell array (itself part of a struc)
1 view (last 30 days)
Show older comments
I have the following structure
dataDens =
dens: [1x172 double]
level: {1x172 cell}
raga: {1x172 cell}
within which dataDens.raga consists of (reducing the number of columns below for simplicity)
Columns 1 through 3
'Multani' 'Tori' 'Tori'
I'd like to find the indices at which 'Tori' appears (that is, [2 3] for the example above). However, all of the commands I tried (below) either give an error, or return blank outputs.
I think it's probably just a matter of adding/removing a curly bracket somewhere, or using some conversion; but I am at my wit's end, and hope someone can help clarify - thanks in advance!
indices = find(strcmp([dataDens.raga{:}], {'Tori'}))
indices = ismember('Tori', dataDens.raga)
[if,where] = ismember('Tori', dataDens.raga)
0 Comments
Accepted Answer
Jan
on 26 Apr 2019
Edited: Jan
on 26 Apr 2019
match = strcmp('Tori', dataDens.raga) % Logical indexing
index = find(match) % Linear indexing
If you want to obtain the correspodning elements from the other fields, logical indexing is efficient:
dataDens.dens(match) % Usually faster than: dataDens.dens(index)
More Answers (0)
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!