MATLAB Getallen: Typen, Opslag en Conversie
MATLAB ondersteunt diverse numerieke klassen: gesigneerde en ongesigneerde integers, en single- en double-precision floating-point getallen. Standaard slaat MATLAB alle numerieke waarden op als double-precision floating-point.
Je kunt ervoor kiezen om getallen als integers of single-precision op te slaan. Alle numerieke typen ondersteunen basis array- en wiskundige operaties.
Conversie naar Numerieke Datatypes
MATLAB biedt functies voor conversie naar verschillende numerieke typen:
| Functie | Doel |
|---|---|
| double | Converteert naar double precision |
| single | Converteert naar single precision |
| int8 | Converteert naar 8-bit signed integer |
| int16 | Converteert naar 16-bit signed integer |
| int32 | Converteert naar 32-bit signed integer |
| int64 | Converteert naar 64-bit signed integer |
| uint8 | Converteert naar 8-bit unsigned integer |
| uint16 | Converteert naar 16-bit unsigned integer |
| uint32 | Converteert naar 32-bit unsigned integer |
| uint64 | Converteert naar 64-bit unsigned integer |
Voorbeeld: Conversie en Vermenigvuldiging
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
Resultaat:
x = 39.9000 26.0250 47.1000 (single/double) x = 38 23 45 (alle integer typen)
Let op: bij integer typen vindt afronding plaats naar het dichtstbijzijnde gehele getal.
Uitbreiding: Conversie naar Cel Array
x = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
Resultaat:
x = { [1,1] = 38; [1,2] = 23; [1,3] = 45 }
Kleinste en Grootste Integers
De functies intmax() en intmin() geven de maximum en minimum waarden voor integer typen.
intmax('int8') % 127
intmin('int64') % -9.2234e+18
Voorbeeld: Bereiken van alle Integer Typen
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))
% ... herhalen voor int16, int32, int64, uint8, uint16, uint32, uint64
Resultaat (belangrijkste waarden):
int8: -128 to 127 int16: -32768 to 32767 int32: -2.1475e+9 to 2.1475e+9 int64: -9.2234e+18 to 9.2234e+18 uint8: 0 to 255 uint16: 0 to 65535 uint32: 0 to 4.2950e+9 uint64: 0 to 1.8447e+19
Kleinste en Grootste Floating-Point Getallen
De functies realmax() en realmin() geven de grenzen voor floating-point getallen.
Voorbeeld
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'))
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'))
Resultaat:
single: -3.4028e+38 to -1.1755e-38 and 1.1755e-38 to 3.4028e+38 double: -1.7977e+308 to -2.2251e-308 and 2.2251e-308 to 1.7977e+308
MATLAB
- Getallen vs Numeratie: Het Verschil en de Praktische Impact
- MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
- Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
- Essentiële MATLAB Commando's voor Efficiënte Berekening
- MATLAB Datatypes: Uitgebreide Gids
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
- MATLAB: Multidimensionale en Speciale Arrays Beheersen
- MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
- MATLAB Strings: Maken, Manipuleren en Functies
- MATLAB Functies: Definitie, Werkruimte, In- en Outputs