Main Content

double

Arrays mit doppelter Genauigkeit

Beschreibung

double ist der numerische Standarddatentyp (Klasse) in MATLAB®, der eine ausreichende Genauigkeit für die meisten rechnergestützten Aufgaben bereitstellt. Numerische Variablen werden automatisch als 64-Bit-Gleitkommazahlen mit doppelter Genauigkeit (8 Byte) gespeichert. Beispiel:

x = 10;
whos x
  Name      Size            Bytes  Class     Attributes

  x         1x1                 8  double  

MATLAB baut den Datentyp double gemäß der IEEE®-Norm 754 für doppelte Genauigkeit auf. Der Bereich für eine negative Zahl des Typs double liegt zwischen -1,79769 x 10308 und -2,22507 x 10-308, während der Bereich für positive Zahlen zwischen 2,22507 x 10-308 und 1,79769 x 10308 liegt.

Weitere Informationen zu Gleitkommawerten mit doppelter und einfacher Genauigkeit finden Sie unter Floating-Point Numbers.

Erstellung

Sie erstellen ein Array mit doppelter Genauigkeit automatisch, wenn Sie einen numerischen Skalar oder ein numerisches Array einer Variablen zuordnen, z. B. A = [1 2 3; 4 5 6]. Die Variable A weist den Typ double auf. Weitere Informationen zum Erstellen und Kombinieren von Arrays finden Sie unter Creating, Concatenating, and Expanding Matrices. Zudem geben Operationen, die auf Variablen mit doppelter Genauigkeit ausgeführt werden, und Funktionen mit Eingaben doppelter Genauigkeit in der Regel Werte mit doppelter Genauigkeit zurück, z. B. + oder sin.

Wenn ein Array eines anderen Datentyps vorliegt, z. B. single oder int8, können Sie dieses Array mithilfe der Funktion double in ein Array mit doppelter Genauigkeit konvertieren, sodass das Array anschließend für weitere Berechnungen mit größerer Genauigkeit gespeichert wird.

Beschreibung

Beispiel

Y = double(X) konvertiert die Werte in X in Werte mit doppelter Genauigkeit.

Eingabeargumente

alle erweitern

Eingabearray, angegeben als Skalar, Vektor, Matrix oder mehrdimensionales Array.

Datentypen: single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Beispiele

alle reduzieren

Standardmäßig weisen Zahlen in MATLAB den Datentyp double auf. Sie können den Typ einer Variablen mithilfe der Funktion class überprüfen.

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

Verwenden Sie die Funktion double, um Variablen ohne doppelte Genauigkeit in den Datentyp double zu konvertieren.

y = true
y = logical
   1

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

Vergleichen Sie die Bereiche numerischer Werte mit doppelter Genauigkeit mit den Bereichen für einfache Genauigkeit.

Verwenden Sie die Funktionen realmin und realmax, um die minimalen und maximalen positiven Werte anzuzeigen, die mit doppelter Genauigkeit dargestellt werden können.

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

Zeigen Sie jetzt die minimalen und maximalen positiven Werte an, die mit einfacher Genauigkeit dargestellt werden können. Der Wertebereich ist kleiner als bei Werten mit doppelter Genauigkeit, erfordert jedoch auch weniger Speicherplatz.

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

Die Funktion eps gibt ein Maß zurück, das angibt, wie nah sich Zahlen mit doppelter Genauigkeit bzw. mit einfacher Genauigkeit sein können. Zeigen Sie den Abstand von der Zahl 1,0 zur nächstgrößeren Zahl mit doppelter Genauigkeit an.

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

Zeigen Sie jetzt den Abstand von 1,0 zur nächstgrößeren Zahl mit einfacher Genauigkeit an. Werte mit doppelter Genauigkeit liegen näher beieinander, da mehr von ihnen dargestellt werden können.

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

Tipps

  • Wenn Sie eine Klasse erstellen, überladen Sie double (im Sinne polymorpher Eigenschaften), wenn es sinnvoll ist, ein Objekt dieser Klasse in einen Wert mit doppelter Genauigkeit zu konvertieren.

  • Wenn ein char-Array in einen numerischen Typ konvertiert wird, entsteht ein Array der entsprechenden Unicode®-Codewerte. Text in Zeichenfolgen lässt sich nicht auf diese Weise konvertieren. Wird eine Zeichenfolge, die keinen einzelnen numerischen Wert darstellt, in double konvertiert, ist das Ergebnis NaN. Weitere Informationen finden Sie unter Unicode and ASCII Values.

Erweiterte Fähigkeiten

GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.

Versionsverlauf

Eingeführt vor R2006a