How can the "find" function fail at finding elements in an array?
1 次查看(过去 30 天)
显示 更早的评论
Dear all,
I have used many times the "find" function with very good results... until now. Here is my VERY SIMPLE code:
a = [0.145:0.0005:0.175];
index = find(a == 0.16)
index =
Empty matrix: 1-by-0
index2 = find(a == 0.15)
index2 =
11
So... both numbers (0.15 and 0.16) EXIST in the array named "a", however, ONLY 0.15 IS FOUND...
I have checked this in R2015a and R2013b with the same results... Does anybody haves an idea of what is going on???
Best regards, Ion
0 个评论
采纳的回答
Star Strider
2016-10-29
编辑:Star Strider
2016-10-29
You have discovered ‘floating point approximation error’.
EDIT —
To illustrate:
a = [0.145:0.0005:0.175];
index = find(a <= 0.16, 1, 'last')
result = a(index)
err = result - 0.16 % Floating Point Error
result =
0.16
err =
-2.7756e-17
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!