Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Математические пакеты > Баг в Матлабе? Поиск не находит число в массиве


Автор: MoebiusCat 29.11.2011, 09:05
Ввожу следующий код:

Код

c =[1:0.01:1.99];
find(c==1.8600)


Результат:
Код

ans =
Empty matrix: 1-by-0

Хотя в массиве данное число имеется. Тогда как для поиска, например, числа 1.8900 нет никаких проблем.

Тот же результат выдаётся при немного видоизменённом поиске:
Код

find(abs(c-1.86)<eps)


Автор: MoebiusCat 12.7.2012, 11:21
Ответ узнала довольно давно, пишу сюда, авось кому пригодится: в действительных числах применение "==" не вполне корректно из-за округлений; вместо
Код

a ==b

лучше писать, скажем
Код

abs(a-b)<10*eps

Число 1.86 как раз является примером таких "неудачных" числел.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)