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

1 次查看(过去 30 天)
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 个评论
Robin
Robin 2011-7-31
btw, I am absolutely sure that 1.5 and the other elements I've tried with this method is actually in array X.

请先登录,再进行评论。

回答(1 个)

Oleg Komarov
Oleg Komarov 2011-7-31
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 个评论
Oleg Komarov
Oleg Komarov 2011-7-31
Reading the faq won't hurt just because it's in the brackets.
Jan
Jan 2011-7-31
@Robin: This is an evergreen question. Ask Google for "Matlab faq6.1" to find more.
@Oleg: +1.

请先登录,再进行评论。

类别

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