Is there a clever way to ditch 'find' and use logical indexing here ?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm sorting an array x:
[~, ind] = sort(x)
If I want the indices of the (n) smallest elements of x, I'll simply go for:
y = ind(1:n)
Now if I want the indices of the n smallest that also are > 0.5, I go:
valid = x > 0.5
y = ind(find(valid(ind), n, 'first'))
Code Analyzer is obviously whining about using 'find', but I wonder if there really is a way to do this using only logical indexing ?
I need the indices -or logical indices- not the values themselves. I use the indices in another array that needs to have the same size as x. So I can't narrow down x to z = x > 0.5 and then sort z: z-based indices wouldn't be consistent with the size of x in that case.
Thanks
Ivan
0 Commenti
Risposta accettata
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing 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!