How to extract indices with a condition?

78 次查看(过去 30 天)
For example I have Y = X(X==42), but I need the indices also!
  2 个评论
Stephen23
Stephen23 2018-3-26
X==42 gives the logical indices, which will be faster than using find.
rbih rbih
rbih rbih 2020-6-12
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.

请先登录,再进行评论。

采纳的回答

Birdman
Birdman 2018-3-26
编辑:Birdman 2018-3-26
To find the index where X is equal to 42, type
idx=find(X==42)
Y=X(idx)

更多回答(1 个)

Walter Roberson
Walter Roberson 2018-3-26
find(X==42) and store in a variable. Then X(that_variable)
  10 个评论
Ron
Ron 2024-2-29
@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 2024-2-29
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by