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