MATLAB® представляет бесконечность по специальному значению Inf
. Бесконечность является результатом таких операций, как деление на нуль и переполнение, которые приводят к результатам, слишком большим, чтобы представлять как обычные значения с плавающей точкой. MATLAB также предоставляет функцию, вызываемую Inf
который возвращает IEEE® арифметическое представление положительной бесконечности как double
скалярное значение.
Несколько примеров операторов, которые возвращают положительную или отрицательную бесконечность в MATLAB, показаны здесь.
|
|
|
|
Используйте isinf
функция для проверки того, что x
положительная или отрицательная бесконечность:
x = log(0); isinf(x) ans = 1
MATLAB представляет значения, которые не являются вещественными или комплексными числами с специальным значением, называемым NaN
, что обозначает «Не число». Выражения типа 0/0
и inf/inf
результат в NaN
, как и любые арифметические операции с NaN
:
x = 0/0 x = NaN
Можно также создать NaN
s по:
x = NaN; whos x Name Size Bytes Class x 1x1 8 double
NaN
функция возвращает одно из арифметических представлений IEEE для NaN
как double
скалярное значение. Точное битовое шестнадцатеричное представление этого NaN
значение есть,
format hex x = NaN x = fff8000000000000
Всегда используйте isnan
функция для проверки того, что элементы массива NaN
:
isnan(x) ans = 1
MATLAB сохраняет статус «Not a Number» альтернативных NaN
представляет и обрабатывает все различные представления NaN
эквивалентно. Однако в некоторых особых случаях (возможно, из-за аппаратных ограничений) MATLAB не сохраняет точный битовый шаблон альтернативных NaN
представления на протяжении всего вычисления и вместо этого используют канонические NaN
битовый шаблон, заданный выше.
Потому что два NaN
s не равны друг другу, логические операции с NaN
всегда возвращает false, кроме теста на неравенство, (NaN ~= NaN
):
NaN > NaN ans = 0 NaN ~= NaN ans = 1