How to extract indices with a condition?

13 vues (au cours des 30 derniers jours)
Mr M.
Mr M. le 26 Mar 2018
Commenté : Walter Roberson le 29 Fév 2024
For example I have Y = X(X==42), but I need the indices also!
  2 commentaires
Stephen23
Stephen23 le 26 Mar 2018
X==42 gives the logical indices, which will be faster than using find.
rbih rbih
rbih rbih le 12 Juin 2020
hi Mr M. i just wondering about the value that you're searching index for (42), isn't that related to the quiz of rigid body kinematics course (Concept Check 9 - Euler Angle Differential Kinematic Equations) on coursera!
just for fun, have a good day.

Connectez-vous pour commenter.

Réponse acceptée

Birdman
Birdman le 26 Mar 2018
Modifié(e) : Birdman le 26 Mar 2018
To find the index where X is equal to 42, type
idx=find(X==42)
Y=X(idx)

Plus de réponses (1)

Walter Roberson
Walter Roberson le 26 Mar 2018
find(X==42) and store in a variable. Then X(that_variable)
  10 commentaires
Ron
Ron le 29 Fév 2024
@Rik, thanks for replying. Yes my comment was somewhat arbitrary here. Yes I was talking about "X(setdiff(1:numels(X), ind0))", this statement. I couldnt understand what it means. Yes you are right about the typo, thanks for correcting me.
Walter Roberson
Walter Roberson le 29 Fév 2024
setdiff(1:numels(X), ind0)
returns all the indices of X that do not appear in ind0
It is questionable whether this will be any faster than
X(X ~= 0)
but the original poster wanted a different way.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Performance and Memory 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!

Translated by