exponenta event banner

дважды

Массивы с двойной точностью

Описание

double - числовой тип данных (класс) по умолчанию в MATLAB ®, обеспечивающий достаточную точность для большинства вычислительных задач. Числовые переменные автоматически сохраняются как 64-разрядные (8-байтовые) значения с двойной точностью и плавающей запятой. Например:

x = 10;
whos x
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

MATLAB создает double тип данных в соответствии со стандартом IEEE ® 754 для двойной точности. Диапазон для отрицательного числа типаdouble находится в диапазоне от -1.79769 x 10308 до -2.22507 x 10-308, а диапазон положительных чисел от 2.22507 x 10-308 до 1.79769 x 10308.

Дополнительные сведения о значениях с плавающей запятой двойной и одинарной точности см. в разделе Числа с плавающей запятой.

Создание

Массив двойной точности создается автоматически при назначении переменной числового скаляра или массива, например, A = [1 2 3; 4 5 6]. Переменная A имеет тип double. Дополнительные сведения о создании и объединении массивов см. в разделах Создание, конкатенация и расширение матриц. Кроме того, операции с переменными и функциями двойной точности с вводом с двойной точностью обычно возвращают значения двойной точности, такие как + или sin.

Если имеется массив другого типа данных, например, single или int8, то можно преобразовать этот массив в двойную точность с помощью double функция, которая затем сохраняет массив с большей точностью для дальнейших вычислений.

Синтаксис

Описание

пример

Y = double(X) преобразует значения в X для удвоения точности.

Входные аргументы

развернуть все

Входной массив, заданный как скаляр, вектор, матрица или многомерный массив.

Типы данных: single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Примеры

свернуть все

По умолчанию номера в MATLAB относятся к типу данных double. Вы можете использовать class для проверки типа переменной.

x = 100;
xtype = class(x)
xtype = 
'double'

Используйте double функция преобразования переменных, не имеющих двойной точности, в тип double.

y = true
y = logical
   1

ydouble = double(y);
ynewtype = class(ydouble)
ynewtype = 
'double'

Сравните диапазоны числовых значений двойной точности с диапазонами одинарной точности.

Используйте realmin и realmax для отображения минимального и максимального положительных значений, которые могут быть представлены с двойной точностью.

doublemin = realmin('double')
doublemin = 2.2251e-308
doublemax = realmax('double')
doublemax = 1.7977e+308

Теперь отобразите минимальное и максимальное положительные значения, которые могут быть представлены в одной точности. Диапазон значений меньше по сравнению с двойной точностью, но требует меньше памяти.

singlemin = realmin('single')
singlemin = single
    1.1755e-38
singlemax = realmax('single')
singlemax = single
    3.4028e+38

eps функция возвращает меру того, как близкие числа могут быть в двойной точности по сравнению с одной точностью. Отображение расстояния от числа 1.0 до следующего большего числа с двойной точностью.

doubleeps = eps('double')
doubleeps = 2.2204e-16

Теперь отобразите расстояние от 1,0 до следующего большего числа с одной точностью. Значения двойной точности ближе друг к другу, так как их можно представить больше.

singleeps = eps('single')
singleeps = single
    1.1921e-07

Совет

  • При создании класса происходит перегрузка double когда имеет смысл преобразовать объект этого класса в значение двойной точности.

  • Преобразование a char массив числового типа создает массив соответствующих значений кода Unicode ®. Текст в строках не преобразуется таким образом. Преобразование строки, не представляющей одно числовое значение, вdouble произведет NaN результат. Дополнительные сведения см. в разделах Значения Юникод и ASCII.

Расширенные возможности

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.
Представлен до R2006a