MATLAB - Zahlen

MATLAB unterstützt verschiedene numerische Klassen, darunter vorzeichenbehaftete und vorzeichenlose Ganzzahlen sowie Gleitkommazahlen mit einfacher und doppelter Genauigkeit. Standardmäßig speichert MATLAB alle numerischen Werte als Gleitkommazahlen mit doppelter Genauigkeit.

Sie können eine beliebige Anzahl oder ein beliebiges Array von Zahlen als Ganzzahlen oder als Zahlen mit einfacher Genauigkeit speichern.

Alle numerischen Typen unterstützen grundlegende Array-Operationen und mathematische Operationen.

Konvertierung in verschiedene numerische Datentypen

MATLAB bietet die folgenden Funktionen zum Konvertieren in verschiedene numerische Datentypen:

Funktion Zweck
doppelt Konvertiert in eine Zahl mit doppelter Genauigkeit
Single Konvertiert in eine Zahl mit einfacher Genauigkeit
int8 Konvertiert in eine 8-Bit-Ganzzahl mit Vorzeichen
int16 Konvertiert in eine 16-Bit-Ganzzahl mit Vorzeichen
int32 Konvertiert in eine vorzeichenbehaftete 32-Bit-Ganzzahl
int64 Konvertiert in eine 64-Bit-Ganzzahl mit Vorzeichen
uint8 Konvertiert in eine vorzeichenlose 8-Bit-Ganzzahl
uint16 Konvertiert in eine vorzeichenlose 16-Bit-Ganzzahl
uint32 Konvertiert in eine vorzeichenlose 32-Bit-Ganzzahl
uint64 Konvertiert in eine vorzeichenlose 64-Bit-Ganzzahl

Beispiel

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

x =

   39.900   26.025   47.100

x =

   39.900   26.025   47.100

x =

   38  23  45

x =

   38  23  45

x =

   38  23  45

x =

   38  23  45

Beispiel

Lassen Sie uns das vorherige Beispiel noch etwas erweitern. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

x =

   38  23  45

x =

   38  23  45

x = 
{
   [1,1] = 38
   [1,2] = 23
   [1,3] = 45
}

Kleinste und größte Ganzzahlen

Die Funktionen intmax() und intmin() Gibt die Maximal- und Minimalwerte zurück, die mit allen Arten von Ganzzahlen dargestellt werden können.

Beide Funktionen verwenden den Integer-Datentyp als Argument, z. B. intmax (int8) oder intmin (int64), und geben die Maximal- und Minimalwerte zurück, die Sie mit dem Integer-Datentyp darstellen können.

Beispiel

Das folgende Beispiel zeigt, wie Sie die kleinsten und größten Werte von Ganzzahlen erhalten. Erstellen Sie eine Skriptdatei und schreiben Sie den folgenden Code hinein -

% displaying the smallest and largest signed integer data
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))

str = 'The range for int16 is:\n\t%d to %d ';
sprintf(str, intmin('int16'), intmax('int16'))

str = 'The range for int32 is:\n\t%d to %d ';
sprintf(str, intmin('int32'), intmax('int32'))

str = 'The range for int64 is:\n\t%d to %d ';
sprintf(str, intmin('int64'), intmax('int64'))
 
% displaying the smallest and largest unsigned integer data
str = 'The range for uint8 is:\n\t%d to %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))

str = 'The range for uint16 is:\n\t%d to %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))

str = 'The range for uint32 is:\n\t%d to %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))

str = 'The range for uint64 is:\n\t%d to %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans = The range for int8 is:
	-128 to 127 
ans = The range for int16 is:
	-32768 to 32767 
ans = The range for int32 is:
	-2147483648 to 2147483647 
ans = The range for int64 is:
	0 to 0 
ans = The range for uint8 is:
	0 to 255 
ans = The range for uint16 is:
	0 to 65535 
ans = The range for uint32 is:
	0 to -1 
ans = The range for uint64 is:
	0 to 18446744073709551616

Kleinste und größte Gleitkommazahlen

Die Funktionen realmax() und realmin() Gibt die Maximal- und Minimalwerte zurück, die mit Gleitkommazahlen dargestellt werden können.

Beide Funktionen geben beim Aufruf mit dem Argument 'single' die Maximal- und Minimalwerte zurück, die Sie mit dem Datentyp mit einfacher Genauigkeit darstellen können, und geben beim Aufruf mit dem Argument 'double' die Maximal- und Minimalwerte zurück, mit denen Sie darstellen können der Datentyp mit doppelter Genauigkeit.

Beispiel

Das folgende Beispiel zeigt, wie Sie die kleinsten und größten Gleitkommazahlen erhalten. Erstellen Sie eine Skriptdatei und schreiben Sie den folgenden Code hinein -

% displaying the smallest and largest single-precision 
% floating point number
str = 'The range for single is:\n\t%g to %g and\n\t %g to  %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))

% displaying the smallest and largest double-precision 
% floating point number
str = 'The range for double is:\n\t%g to %g and\n\t %g to  %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt:

ans = The range for single is:                                                  
        -3.40282e+38 to -1.17549e-38 and                                        
         1.17549e-38 to  3.40282e+38                                            
ans = The range for double is:                                                  
        -1.79769e+308 to -2.22507e-308 and                                      
         2.22507e-308 to  1.79769e+308