double

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

Описание

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

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

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

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

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

Совет

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

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

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

.

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

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