MATLAB - Nombres : Types, stockage et conversion
MATLAB prend en charge diverses classes numériques incluant les entiers signés et non signés, ainsi que les nombres à virgule flottante en simple et double précision. Par défaut, MATLAB stocke toutes les valeurs numériques comme des nombres à virgule flottante en double précision.
Vous pouvez choisir de stocker n'importe quel nombre ou tableau de nombres comme entiers ou comme nombres en simple précision.
Tous les types numériques prennent en charge les opérations de base sur les tableaux et les opérations mathématiques.
Conversion vers divers types de données numériques
MATLAB fournit les fonctions suivantes pour convertir vers divers types de données numériques :
| Fonction | But |
|---|---|
| double | Convertit en nombre à double précision |
| single | Convertit en nombre à simple précision |
| int8 | Convertit en entier signé 8 bits |
| int16 | Convertit en entier signé 16 bits |
| int32 | Convertit en entier signé 32 bits |
| int64 | Convertit en entier signé 64 bits |
| uint8 | Convertit en entier non signé 8 bits |
| uint16 | Convertit en entier non signé 16 bits |
| uint32 | Convertit en entier non signé 32 bits |
| uint64 | Convertit en entier non signé 64 bits |
Exemple
Créez un fichier script et saisissez le code suivant :
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
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
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
Exemple
Étendons l'exemple précédent. Créez un fichier script et saisissez le code suivant :
x = int32([5.32 3.47 6.28]) .* 7.5 x = int64([5.32 3.47 6.28]) .* 7.5 x = num2cell(x)
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
x = 38 23 45 x = 38 23 45 x = { [1,1] = 38 [1,2] = 23 [1,3] = 45 }
Plus petits et plus grands entiers
Les fonctions intmax() et intmin() retournent les valeurs maximales et minimales qui peuvent être représentées avec tous les types de nombres entiers.
Les deux fonctions prennent le type de données entier comme argument, par exemple intmax('int8') ou intmin('int64'), et retournent les valeurs maximales et minimales que vous pouvez représenter avec ce type de données entier.
Exemple
L'exemple suivant illustre comment obtenir les plus petites et plus grandes valeurs des entiers. Créez un fichier script et écrivez le code suivant :
% affichage des plus petits et plus grands entiers signés str = 'L\\'intervalle pour int8 est :\n\t%d à %d '; sprintf(str, intmin('int8'), intmax('int8')) str = 'L\\'intervalle pour int16 est :\n\t%d à %d '; sprintf(str, intmin('int16'), intmax('int16')) str = 'L\\'intervalle pour int32 est :\n\t%d à %d '; sprintf(str, intmin('int32'), intmax('int32')) str = 'L\\'intervalle pour int64 est :\n\t%d à %d '; sprintf(str, intmin('int64'), intmax('int64')) % affichage des plus petits et plus grands entiers non signés str = 'L\\'intervalle pour uint8 est :\n\t%d à %d '; sprintf(str, intmin('uint8'), intmax('uint8')) str = 'L\\'intervalle pour uint16 est :\n\t%d à %d '; sprintf(str, intmin('uint16'), intmax('uint16')) str = 'L\\'intervalle pour uint32 est :\n\t%d à %d '; sprintf(str, intmin('uint32'), intmax('uint32')) str = 'L\\'intervalle pour uint64 est :\n\t%d à %d '; sprintf(str, intmin('uint64'), intmax('uint64'))
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
ans = L'intervalle pour int8 est : -128 à 127 ans = L'intervalle pour int16 est : -32768 à 32767 ans = L'intervalle pour int32 est : -2147483648 à 2147483647 ans = L'intervalle pour int64 est : 0 à 0 ans = L'intervalle pour uint8 est : 0 à 255 ans = L'intervalle pour uint16 est : 0 à 65535 ans = L'intervalle pour uint32 est : 0 à -1 ans = L'intervalle pour uint64 est : 0 à 18446744073709551616
Plus petits et plus grands nombres à virgule flottante
Les fonctions realmax() et realmin() retournent les valeurs maximales et minimales qui peuvent être représentées avec des nombres à virgule flottante.
Les deux fonctions, lorsqu'elles sont appelées avec l'argument 'single', retournent les valeurs maximales et minimales que vous pouvez représenter avec le type de données simple précision, et lorsqu'elles sont appelées avec l'argument 'double', retournent les valeurs maximales et minimales que vous pouvez représenter avec le type de données double précision.
Exemple
L'exemple suivant illustre comment obtenir les plus petits et plus grands nombres à virgule flottante. Créez un fichier script et écrivez le code suivant :
% affichage des plus petits et plus grands nombres à virgule flottante simple précision str = 'L\\'intervalle pour single est :\n\t%g à %g et\n\t %g à %g'; sprintf(str, -realmax('single'), -realmin('single'), ... realmin('single'), realmax('single')) % affichage des plus petits et plus grands nombres à virgule flottante double précision str = 'L\\'intervalle pour double est :\n\t%g à %g et\n\t %g à %g'; sprintf(str, -realmax('double'), -realmin('double'), ... realmin('double'), realmax('double'))
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
ans = L'intervalle pour single est : -3.40282e+38 à -1.17549e-38 et 1.17549e-38 à 3.40282e+38 ans = L'intervalle pour double est : -1.79769e+308 à -2.22507e-308 et 2.22507e-308 à 1.79769e+308
MATLAB
- Nombres vs numération : comprendre la distinction et son impact pratique
- MATLAB : Aperçu complet de l'environnement de calcul numérique de référence
- Comprendre les variables dans MATLAB : Bases et exemples
- Commandes MATLAB essentielles pour un calcul efficace
- Types de données MATLAB : Guide complet
- Maîtriser les opérateurs MATLAB : Arithmétiques, Logiques, Bitwise et Ensemblistes
- Maîtriser les matrices MATLAB : Création, indexation et manipulation
- MATLAB : Maîtriser les tableaux multidimensionnels et spéciaux
- Maîtriser la notation deux-points de MATLAB : créer des vecteurs et itérer efficacement