How to extract indices with a condition?

124 views (last 30 days)
For example I have Y = X(X==42), but I need the indices also!
  2 Comments
Stephen23
Stephen23 on 26 Mar 2018
X==42 gives the logical indices, which will be faster than using find.
rbih rbih
rbih rbih on 12 Jun 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.

Sign in to comment.

Accepted Answer

Birdman
Birdman on 26 Mar 2018
Edited: Birdman on 26 Mar 2018
To find the index where X is equal to 42, type
idx=find(X==42)
Y=X(idx)

More Answers (1)

Walter Roberson
Walter Roberson on 26 Mar 2018
find(X==42) and store in a variable. Then X(that_variable)
  10 Comments
Ron
Ron on 29 Feb 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 on 29 Feb 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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!