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