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

2 次查看(过去 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 中查找有关 Introduction to Installation and Licensing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by