How to extract indices with a condition?

79 Ansichten (letzte 30 Tage)
Mr M.
Mr M. am 26 Mär. 2018
Kommentiert: Walter Roberson am 29 Feb. 2024
For example I have Y = X(X==42), but I need the indices also!
  2 Kommentare
Stephen23
Stephen23 am 26 Mär. 2018
X==42 gives the logical indices, which will be faster than using find.
rbih rbih
rbih rbih am 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Birdman
Birdman am 26 Mär. 2018
Bearbeitet: Birdman am 26 Mär. 2018
To find the index where X is equal to 42, type
idx=find(X==42)
Y=X(idx)

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 26 Mär. 2018
find(X==42) and store in a variable. Then X(that_variable)
  10 Kommentare
Ron
Ron am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by