I cannot find the index of a specific element in an array?

1 Ansicht (letzte 30 Tage)
Robin
Robin am 31 Jul. 2011
I have an array of non-repeating elements, X. I need to find the index of a specific element, 1.5 in X. I am trying to do index=find(X==1.5). However it just does not work. I gives me a "empty matrix". Does this have to do with the elements in the array being decimal (float?) ? Please help me out.
  1 Kommentar
Robin
Robin am 31 Jul. 2011
btw, I am absolutely sure that 1.5 and the other elements I've tried with this method is actually in array X.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Oleg Komarov
Oleg Komarov am 31 Jul. 2011
Yes, floating point approximation ( faq6.1)
What you see is not what you get!
try this:
a = 0.2 + 0.1
>> a == 0.3
ans =
0
sprintf('%.17f',a)
% Compare with threshold
abs(a - 0.3) < eps
  3 Kommentare
Oleg Komarov
Oleg Komarov am 31 Jul. 2011
Reading the faq won't hurt just because it's in the brackets.
Jan
Jan am 31 Jul. 2011
@Robin: This is an evergreen question. Ask Google for "Matlab faq6.1" to find more.
@Oleg: +1.

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