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