MATLAB – Zahlen: Typen, Speicherung und Konvertierung
MATLAB unterstützt verschiedene numerische Klassen, die vorzeichenbehaftete und vorzeichenlose Ganzzahlen sowie Gleitkommazahlen einfacher und doppelter Genauigkeit umfassen. Standardmäßig speichert MATLAB alle numerischen Werte als Gleitkommazahlen doppelter Genauigkeit.
Sie können beliebige Zahlen oder Arrays von Zahlen als Ganzzahlen oder als Gleitkommazahlen einfacher Genauigkeit speichern.
Alle numerischen Typen unterstützen grundlegende Array-Operationen und mathematische Operationen.
Konvertierung in verschiedene numerische Datentypen
MATLAB stellt folgende Funktionen zur Konvertierung in verschiedene numerische Datentypen bereit:
| Funktion | Zweck |
|---|---|
| double | Konvertiert in Zahl doppelter Genauigkeit |
| single | Konvertiert in Zahl einfacher Genauigkeit |
| int8 | Konvertiert in 8-Bit-Ganzzahl mit Vorzeichen |
| int16 | Konvertiert in 16-Bit-Ganzzahl mit Vorzeichen |
| int32 | Konvertiert in 32-Bit-Ganzzahl mit Vorzeichen |
| int64 | Konvertiert in 64-Bit-Ganzzahl mit Vorzeichen |
| uint8 | Konvertiert in 8-Bit-Ganzzahl ohne Vorzeichen |
| uint16 | Konvertiert in 16-Bit-Ganzzahl ohne Vorzeichen |
| uint32 | Konvertiert in 32-Bit-Ganzzahl ohne Vorzeichen |
| uint64 | Konvertiert in 64-Bit-Ganzzahl ohne Vorzeichen |
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
Live Demox = 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
Beim Ausführen der Datei wird folgendes 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
Erweitern wir das vorherige Beispiel etwas. Erstellen Sie eine Skriptdatei und geben Sie folgenden Code ein:
Live Demox = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
Beim Ausführen der Datei wird folgendes 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() geben die maximalen und minimalen Werte zurück, die mit allen Arten von Ganzzahlen dargestellt werden können.
Beide Funktionen nehmen den Ganzzahldatentyp als Argument, z. B. intmax('int8') oder intmin('int64'), und geben die maximalen und minimalen Werte zurück, die mit diesem Ganzzahldatentyp dargestellt werden können.
Beispiel
Das folgende Beispiel zeigt, wie man die kleinsten und größten Werte von Ganzzahlen erhält. Erstellen Sie eine Skriptdatei und schreiben Sie folgenden Code:
Live Demo % Anzeige der kleinsten und größten vorzeichenbehafteten Ganzzahl-Datentypen str = 'Der Bereich für int8 ist:\n\t%d bis %d '; sprintf(str, intmin('int8'), intmax('int8')) str = 'Der Bereich für int16 ist:\n\t%d bis %d '; sprintf(str, intmin('int16'), intmax('int16')) str = 'Der Bereich für int32 ist:\n\t%d bis %d '; sprintf(str, intmin('int32'), intmax('int32')) str = 'Der Bereich für int64 ist:\n\t%d bis %d '; sprintf(str, intmin('int64'), intmax('int64')) % Anzeige der kleinsten und größten vorzeichenlosen Ganzzahl-Datentypen str = 'Der Bereich für uint8 ist:\n\t%d bis %d '; sprintf(str, intmin('uint8'), intmax('uint8')) str = 'Der Bereich für uint16 ist:\n\t%d bis %d '; sprintf(str, intmin('uint16'), intmax('uint16')) str = 'Der Bereich für uint32 ist:\n\t%d bis %d '; sprintf(str, intmin('uint32'), intmax('uint32')) str = 'Der Bereich für uint64 ist:\n\t%d bis %d '; sprintf(str, intmin('uint64'), intmax('uint64'))
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
ans = Der Bereich für int8 ist: -128 bis 127 ans = Der Bereich für int16 ist: -32768 bis 32767 ans = Der Bereich für int32 ist: -2147483648 bis 2147483647 ans = Der Bereich für int64 ist: 0 bis 0 ans = Der Bereich für uint8 ist: 0 bis 255 ans = Der Bereich für uint16 ist: 0 bis 65535 ans = Der Bereich für uint32 ist: 0 bis -1 ans = Der Bereich für uint64 ist: 0 bis 18446744073709551616
Kleinste und größte Gleitkommazahlen
Die Funktionen realmax() und realmin() geben die maximalen und minimalen Werte zurück, die mit Gleitkommazahlen dargestellt werden können.
Beide Funktionen geben, wenn sie mit dem Argument 'single' aufgerufen werden, die maximalen und minimalen Werte zurück, die mit dem Datentyp einfacher Genauigkeit dargestellt werden können. Wenn sie mit dem Argument 'double' aufgerufen werden, geben sie die maximalen und minimalen Werte zurück, die mit dem Datentyp doppelter Genauigkeit dargestellt werden können.
Beispiel
Das folgende Beispiel zeigt, wie man die kleinsten und größten Gleitkommazahlen erhält. Erstellen Sie eine Skriptdatei und schreiben Sie folgenden Code:
Live Demo % Anzeige der kleinsten und größten Gleitkommazahlen einfacher Genauigkeit str = 'Der Bereich für single ist:\n\t%g bis %g und\n\t %g bis %g'; sprintf(str, -realmax('single'), -realmin('single'), ... realmin('single'), realmax('single')) % Anzeige der kleinsten und größten Gleitkommazahlen doppelter Genauigkeit str = 'Der Bereich für double ist:\n\t%g bis %g und\n\t %g bis %g'; sprintf(str, -realmax('double'), -realmin('double'), ... realmin('double'), realmax('double'))
Beim Ausführen der Datei wird folgendes Ergebnis angezeigt:
ans = Der Bereich für single ist: -3.40282e+38 bis -1.17549e-38 und 1.17549e-38 bis 3.40282e+38 ans = Der Bereich für double ist: -1.79769e+308 bis -2.22507e-308 und 2.22507e-308 bis 1.79769e+308
MATLAB
- Zahlen vs. Zahlensysteme: Die Unterscheidung und ihre praktische Bedeutung
- MATLAB: Umfassender Überblick über die führende numerische Computing-Umgebung
- Variablen in MATLAB verstehen: Grundlagen & Beispiele
- Wichtige MATLAB-Befehle für effizientes Computing
- MATLAB Datentypen: Umfassender Leitfaden
- MATLAB Operatoren meistern: Arithmetik, Logik, Bitweise Operationen
- MATLAB Matrizen Grundlagen: Erstellen, Referenzieren, Manipulieren
- MATLAB: Mehrdimensionale und spezielle Arrays meistern
- MATLAB-Colon-Notation meistern: Vektoren erstellen & effizient iterieren
- MATLAB Strings meistern: Einfache Erstellung & Verwendung