Finding structure array entries with certain values
278 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
What is the way to find all structure array entries with specific values?
E.g. I tried:
find(cell_data.CN == 4)
But that returns:
Error using ==
Too many input arguments.
Kind regards,
Tom
0 Commenti
Risposta accettata
Jos (10584)
il 7 Mar 2014
I assume that celldata is a structure array
% create some example data
for k=1:10, celldata(k).CN = ceil(4*rand) ; end
% method 1: easy
allCN = [celldata.CN] % comma separated list expansion
tf1 = allCN == 4
index1 = find(tf1)
% method 2: very flexible
fun = @(x) celldata(x).CN == 4 % useful for complicated fields
tf2 = arrayfun(fun, 1:numel(celldata))
index2 = find(tf2)
Both methods can be written as one-liners.
0 Commenti
Più risposte (1)
Thomas
il 7 Mar 2014
You could use something like this
strs={'1' '2' '3' '4'}
ind=find(ismember(strs,'4'))
>> ind =
4
Vedere anche
Categorie
Scopri di più su Numeric Types 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!