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!