Is there a clever way to ditch 'find' and use logical indexing here ?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!