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
Можно также создать NaNs по:
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 битовый шаблон, заданный выше.
Потому что два NaNs не равны друг другу, логические операции с NaN всегда возвращает false, кроме теста на неравенство, (NaN ~= NaN):
NaN > NaN
ans =
0
NaN ~= NaN
ans =
1