Finding all occurences of a string within a cell array (itself part of a struc)

1 回表示 (過去 30 日間)
z8080
z8080 2019 年 4 月 26 日
コメント済み: z8080 2019 年 4 月 29 日
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)

採用された回答

Jan
Jan 2019 年 4 月 26 日
編集済み: Jan 2019 年 4 月 26 日
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)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品


リリース

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by