Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Баг в Матлабе? Поиск не находит число в массиве 
V
    Опции темы
MoebiusCat
  Дата 29.11.2011, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



Ввожу следующий код:

Код

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


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

ans =
Empty matrix: 1-by-0

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

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

find(abs(c-1.86)<eps)


PM MAIL   Вверх
MoebiusCat
Дата 12.7.2012, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 5.1.2011

Репутация: нет
Всего: нет



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

a ==b

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

abs(a-b)<10*eps

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



Это сообщение отредактировал(а) MoebiusCat - 12.7.2012, 11:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Математические пакеты | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.